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