如何在iPhone SDK中将NSString转换为UTF-8格式的字符串? [英] How to convert a NSString to UTF-8 format string in iphone sdk?
问题描述
我在我的应用程序中进行了本地化(英语,西班牙语,意大利语).客户端向我发送了字符串文件,但是有些字符很奇怪,我该如何纠正它们?我发现客户端使用Mac OS Roman编码,如何将其转换为utf-8. 例如纽伦堡 客户现在将我发送给我时,我将其转换为N√ºrnberg.
I have localization in my app(english,spanish,italian).The client sent me strings files but some characters are strange how do i correct them? i have figured out that the client used Mac OS Roman encoding how do i convert this to utf-8. for example Nürnberg is converted into N√ºrnberg when client send me now i want to reconvert it.
推荐答案
如果您有一个包含所有字符串的属性文件,则可以将其加载并读取其中的任何字符串(来自
If you have a properties file with all of the strings... you can load them in and read them with any of these (from NSString's Documentation):
– initWithBytes:length:encoding:
– initWithBytesNoCopy:length:encoding:freeWhenDone:
– initWithCString:encoding:
– initWithUTF8String:
这是所有可能编码的列表
Here's the list of all possible encodings
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
};
这篇关于如何在iPhone SDK中将NSString转换为UTF-8格式的字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!