2009-08-17 5 views
8

Ich habe diese Zeile Code NSString zu NSData konvertieren:Wie konvertiere ich NSString in NSData?

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

Wie mache ich das in Unicode anstelle von UTF-8? Meine Nachricht kann kyrillische Zeichen oder diakritische Zeichen enthalten.

+1

Definieren Sie "Unicode". Es ist keine Kodierung (zumindest nicht streng genommen). UTF-8 ist perfekt in der Lage, alle Unicode-Zeichen zu kodieren, daher sollte es für Ihre Verwendung ausreichen. –

+0

NSUnicodeStringEncoding –

Antwort

18

Zunächst einmal sollten Sie dataUsingEncoding: anstelle von UTF8String verwenden. Sie verwenden nur UTF8String, wenn Sie eine C-Zeichenfolge in dieser Codierung benötigen.

Dann, für "Unicode" (speziell UTF-16), übergeben Sie einfach NSUnicodeStringEncoding anstelle von NSUTF8StringEncoding in Ihrer dataUsingEncoding: Nachricht.

+1

danke! Ich habe irgendwie dataUsingEncoding in den Dokumenten verpasst. –