2009-12-07 17 views
9

Uygulamamda yerelleştirmem var (ingilizce, ispanyolca, italyanca). İstemci bana dosyalar yolladı ama bazı karakterler garip bir şekilde onları nasıl düzeltebilirim? İstemcinin Mac OS Roman kodlamasını kullandığını anladım ve bunu utf-8'e nasıl dönüştürüyorum. örneğin Nürnberg , istemci bana gönderdiğinde şimdi onu dönüştürmek istediğimde N√ºrnberg'e dönüştürülür. Bir özellikleri dizeleri tüm dosya varsaNSString, iphone sdk'deki UTF-8 biçimindeki dizeye nasıl dönüştürülür?

cevap

12

... Eğer bunları yükleyebilirsiniz ve (NSString's Documentation itibaren) Bunlardan herhangi onları okuyun: Burada

– initWithBytes:length:encoding: 
– initWithBytesNoCopy:length:encoding:freeWhenDone: 
– initWithCString:encoding: 
– initWithUTF8String: 

tüm olası kodlamaların

listesi var
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 
}; 
19

basit bir yöntem

[yourNSStringObject UTF8String];