2009-08-17 110 views
8

我有这行代码的NSString转换为NSData的:如何将NSString转换为NSData?

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

如何以Unicode而不是UTF8做到这一点?我的信息可能包含西里尔文字符或变音符号。

+1

定义“Unicode”。这不是一种编码(至少不严格)。 UTF-8完全能够编码所有Unicode字符,因此它应该足以供您使用。 – 2009-08-17 11:22:48

+0

NSUnicodeStringEncoding – 2009-08-17 11:23:41

回答

18

首先,您应该使用dataUsingEncoding:而不是通过UTF8String。当您需要该编码中的C字符串时,只使用UTF8String

然后,对于“Unicode”(特别是UTF-16),只需在您的dataUsingEncoding:消息中通过NSUnicodeStringEncoding而不是NSUTF8StringEncoding即可。

+1

谢谢!我不知何故错过了文档中的usingUsingEncoding。 – 2010-09-15 07:01:48