2011-07-05 9 views
1

私は混乱しています。私はjsonの文字列を解析しています。NSLogと-print descriptionの違いはNSStringとUTF-8です

解析する前に、NSStringの内容を確認します。 Xode4

:私はの「readble」の文字を表示するコンソールNSLog("%@",content)を呼び出すと NSString変数「印刷記述」 コンソール上で私をクリックしてUTF-8

\u434 \u433フォーマットとして値を表示しますUTF-8エンコーディング

これはなぜ違いますか?解析する文字列が100%UTF-8であることをどのように知ることができますか?

ありがとうございました。

+0

違いを理解しましたか? –

答えて

0

メソッドを使用して、エスケープではなく、探しているキリル文字を確認できる場合は、UTF-8文字列を使用しています。

"-description"メソッドは、ここで使用するものではありません。エスケープ文字を表示する可能性が高くなります。特に、NSArrayやNSDictionaryのようなプロパティリスト項目に値を格納するときはいつも、その記述は普通のASCII以外の文字をエスケープします。

NSLogは-descriptionを使用していないので、より信頼性の高いガイドです。それがNSLogに表示されている場合は、おそらく問題ありません。

文字列が正しくエンコードされていることを確認したい場合は、テストするための最良の方法は表示することです。ユーザーインターフェイスにテキストインターフェイス要素(NSTextFieldまたはUITextField)を作成し、ワイヤして、文字列を値として設定します。そこに表示されている場合は、適切にフォーマットされています。

ショートバージョン:デバッガにエスケープ文字として表示される場合、必ずしもUTF8ではありません。適切な文字でどこにでも(NSLogを含む)表示されている場合は、おそらく適切なエンコーディングになっています。確かめたいのであれば、テストインタフェース要素を設定し、それがどのように見えるかを見てください。

関連する問題