アプリにローカリゼーションがあります(英語、スペイン語、イタリア語)。クライアントから文字列ファイルが送信されましたが、一部の文字がおかしいのですが、どうすれば修正できますか?クライアントがMacOS Romanエンコーディングを使用していることを理解しました。これをutf-8に変換するにはどうすればよいですか?たとえば、クライアントから送られてきたニュルンベルクは、ニュルンベルクに変換されます。再変換したいのですが。
すべての文字列を含むプロパティファイルがある場合...それらをロードして、これらのいずれかで読み取ることができます( NSStringのドキュメント から):
– 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
};
簡単な方法
[yourNSStringObject UTF8String];