2009-08-17 4 views
8

NSStringをNSDataに変換するにはどうすればよいですか?

NSStringをNSDataに変換するこのコード行があります。

NSData *data = [NSData dataWithBytes:[message UTF8String] length:[message lengthOfBytesUsingEncoding:NSUTF8StringEncoding]]; 

UTF8の代わりにUnicodeでこれを行うにはどうすればよいですか?私のメッセージには、キリル文字や発音区別符が含まれている可能性があります。

+1

"Unicode"を定義します。エンコーディングではありません(少なくとも厳密には言わない)。 UTF-8は、すべてのUnicode文字を完全にエンコードすることができるため、使用するには十分なはずです。 –

+0

NSUnicodeStringEncoding –

答えて

18

まず、UTF8Stringの代わりにdataUsingEncoding:を使用する必要があります。そのエンコーディングでC文字列が必要な場合は、UTF8Stringのみを使用します。

次に、「Unicode」(具体的にはUTF-16)の場合、dataUsingEncoding:メッセージにNSUTF8StringEncodingの代わりにNSUnicodeStringEncodingを渡すだけです。

+1

ありがとう!私は何とかドキュメントのdataUsingEncodingを見逃しました。 –

関連する問題