微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

objective-c – 如何将NSString转换为iPhone sdk中的UTF-8格式字符串?

我在我的应用程序(英语,西班牙语,意大利语)中有本地化.客户端发送了我的字符串文件,但是一些字符是奇怪的,我如何纠正它们?我已经弄清楚,客户端使用Mac OS Roman编码如何将其转换为utf-8.
例如纽伦堡
当客户发送给我时,我想重新转换它,被转换成N√ºrnberg.

解决方法

如果你有一个包含所有字符串的属性文件,你可以加载它们并使用以下任何一个读取它们(从 NSString’s Documentation):
– initWithBytes:length:encoding:
– initWithBytesNocopy:length:encoding:freeWhenDone:
– initWithCString:encoding:
– initWithUTF8String:

以下是所有可能编码的列表

enum {
   NSASCIIStringEncoding = 1,NSNEXTSTEPStringEncoding = 2,NSJapaneseEUCStringEncoding = 3,NSUTF8StringEncoding = 4,<----- UTF8!
   NSISOlatin1StringEncoding = 5,NSSymbolStringEncoding = 6,NSNonLossyASCIIStringEncoding = 7,NSShiftJIsstringEncoding = 8,NSISOLatin2StringEncoding = 9,NSUnicodeStringEncoding = 10,NSWindowsCP1251StringEncoding = 11,NSWindowsCP1252StringEncoding = 12,NSWindowsCP1253StringEncoding = 13,NSWindowsCP1254StringEncoding = 14,NSWindowsCP1250StringEncoding = 15,NSISO2022JPStringEncoding = 21,NSMacOSRomanStringEncoding = 30,NSUTF16StringEncoding = NSUnicodeStringEncoding,NSUTF16BigEndianStringEncoding = 0x90000100,NSUTF16LittleEndianStringEncoding = 0x94000100,NSUTF32StringEncoding = 0x8c000100,NSUTF32BigEndianStringEncoding = 0x98000100,NSUTF32LittleEndianStringEncoding = 0x9c000100,nsproprietaryStringEncoding = 65536
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐