我有这行代码将NSString转换为NSData:
NSData *data = [NSData dataWithBytes:[message UTF8String] length:[message lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
如何在Unicode而不是UTF8中执行此操作?我的留言可能包含西里尔字符或变音符号。
答案 0 :(得分:18)
首先,您应该使用dataUsingEncoding:
而不是通过UTF8String
。当您需要该编码中的C字符串时,只能使用UTF8String
。
然后,对于“Unicode”(特别是UTF-16),只需在NSUnicodeStringEncoding
消息中传递NSUTF8StringEncoding
而不是dataUsingEncoding:
。