NSUTF8StringEncoding returns nil NSString

前端 未结 2 615
闹比i
闹比i 2020-12-20 23:31

I\'m developing an iOs 4 application with latest SDK and XCode 4.2.

I\'m using a web service to retrieve some data, and I receive that data. But, when I do this

相关标签:
2条回答
  • 2020-12-21 00:11

    I think your problem is the web service that doesn't return valid UTF-8 text. You should check the encoding on the server side.

    0 讨论(0)
  • 2020-12-21 00:26

    make sure your have valid UTF8 data, you check that using functions like,

        NSStringEncoding encoding;
        NSString *pageData = [NSString stringWithContentsOfURL:url usedEncoding:&encoding error:NULL];
        NSLog(@"Encoding %d",encoding);(Note: NSUTF8StringEncoding = 4)
    

    Available Encoding,

    */
    enum {
        NSASCIIStringEncoding = 1,      /* 0..127 only */
        NSNEXTSTEPStringEncoding = 2,
        NSJapaneseEUCStringEncoding = 3,
        NSUTF8StringEncoding = 4,
        NSISOLatin1StringEncoding = 5,
        NSSymbolStringEncoding = 6,
        NSNonLossyASCIIStringEncoding = 7,
        NSShiftJISStringEncoding = 8,          /* kCFStringEncodingDOSJapanese */
        NSISOLatin2StringEncoding = 9,
        NSUnicodeStringEncoding = 10,
        NSWindowsCP1251StringEncoding = 11,    /* Cyrillic; same as AdobeStandardCyrillic */
        NSWindowsCP1252StringEncoding = 12,    /* WinLatin1 */
        NSWindowsCP1253StringEncoding = 13,    /* Greek */
        NSWindowsCP1254StringEncoding = 14,    /* Turkish */
        NSWindowsCP1250StringEncoding = 15,    /* WinLatin2 */
        NSISO2022JPStringEncoding = 21,        /* ISO 2022 Japanese encoding for e-mail */
        NSMacOSRomanStringEncoding = 30,
    
        NSUTF16StringEncoding = NSUnicodeStringEncoding,      /* An alias for NSUnicodeStringEncoding */
    
        NSUTF16BigEndianStringEncoding = 0x90000100,          /* NSUTF16StringEncoding encoding with explicit endianness specified */
        NSUTF16LittleEndianStringEncoding = 0x94000100,       /* NSUTF16StringEncoding encoding with explicit endianness specified */
    
        NSUTF32StringEncoding = 0x8c000100,                   
        NSUTF32BigEndianStringEncoding = 0x98000100,          /* NSUTF32StringEncoding encoding with explicit endianness specified */
        NSUTF32LittleEndianStringEncoding = 0x9c000100        /* NSUTF32StringEncoding encoding with explicit endianness specified */
    };
    typedef NSUInteger NSStringEncoding;
    
    0 讨论(0)
提交回复
热议问题