2010-11-27 6 views
1

NSDataオブジェクトの生のバイトをNSString(基本的にはヌルエンコーディング)に格納する必要がありますが、これを行う方法がわかりません。明らかに不適切な8ビットエンコーディングを割り当てることは悪いことです。 NSASCIIStringEncodingは、ドキュメントが "8ビットの文字列内の厳密な7ビットASCIIエンコーディング(ASCII値0〜127のみ)"のため、OKではありません。 0x0〜0xFFの全範囲が必要です。NSStringの生のバイトで使用するエンコーディング

Base64エンコードは許容される解決方法ではありません。

+0

もう少し詳しい情報を知ることができます。データはどこから来たのですか?あなたはそれを文字列として送信しようとしていますか? – grahamparks

答えて

2

基本的に、あなたはしません。

NSStringは、有効にエンコードされた文字列データの文字列です。通常はUTF8またはUTF16です。 NSDataは任意のバイナリデータ用です。

生のバイトをNSStringに保存する場合は、エンコードする必要があります。base64がこれを行う最も一般的な手段の1つです。

+0

当然@bbumは再び配信します! :) –

+0

これは、base64エンコードとNSDataのデコードを行い、結果のNSDataをNsstringに変換する必要があることを意味します。私は正しい? – Warrior

+0

うん - それはうまくいくだろう。あなたがしなければならない限り、一般的には避けるべきです。 – bbum

関連する問題