【发布时间】:2010-12-24 00:50:21
【问题描述】:
我的应用程序中有本地化(英语、西班牙语、意大利语)。客户向我发送了字符串文件,但有些字符很奇怪,我该如何更正它们?我发现客户端使用了 Mac OS Roman 编码我如何将其转换为 utf-8。 例如纽伦堡 当客户发送给我时已转换为 N√ºrnberg 现在我想重新转换它。
【问题讨论】:
标签: objective-c xcode iphone-sdk-3.0 utf-8 nsstring
我的应用程序中有本地化(英语、西班牙语、意大利语)。客户向我发送了字符串文件,但有些字符很奇怪,我该如何更正它们?我发现客户端使用了 Mac OS Roman 编码我如何将其转换为 utf-8。 例如纽伦堡 当客户发送给我时已转换为 N√ºrnberg 现在我想重新转换它。
【问题讨论】:
标签: objective-c xcode iphone-sdk-3.0 utf-8 nsstring
简单的方法
[yourNSStringObject UTF8String];
【讨论】:
如果您有一个包含所有字符串的属性文件...您可以加载它们并使用其中任何一个读取它们(来自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
};
【讨论】: