目标c中的ASCII到字符转换对于扩展的ascii不正确

时间:2012-08-01 14:04:35

标签: objective-c ascii converter

我试图实现ascii到字符转换器。 代码是

[NSString stringWithFormat:@"%c",ascii]

它适用于高达127的ascii 在127之后,它显示了苹果特殊字符的字符

来自here我找到了

  

8位ASCII表有几种不同的变体。

我需要

  

ISO 8859-1,也称为ISO Latin-1

转换时的Ascii。如何将ascii转换为ISO 8859-1而不是APPLE的特殊字符。

2 个答案:

答案 0 :(得分:2)

[NSString stringWithCString:asciiString encoding:NSISOLatin1StringEncoding];

其中asciiString是您的ascii字符,后跟空字节。

答案 1 :(得分:0)

我输入了字符编码问题,我制作了编码库。该库不支持ISO Latin-1,但我认为您可以将它与“NSISOLatin1StringEncoding”一起使用。

内部代码如下:

+ (NSString *)encodedStringWithContentsOfURL:(NSURL *)url
{
    // Get the web page HTML
    NSData *data = [NSData dataWithContentsOfURL:url];

    // response
    int enc_arr[] = {
        NSUTF8StringEncoding,           // UTF-8
        NSShiftJISStringEncoding,       // Shift_JIS
        NSJapaneseEUCStringEncoding,    // EUC-JP
        NSISO2022JPStringEncoding,      // JIS
        NSUnicodeStringEncoding,        // Unicode
        NSASCIIStringEncoding           // ASCII
    };
    NSString *data_str = nil;
    int max = sizeof(enc_arr) / sizeof(enc_arr[0]);
    for (int i=0; i<max; i++) {
        data_str = [
                    [NSString alloc]
                    initWithData : data
                    encoding : enc_arr[i]
                    ];
        if (data_str!=nil) {
            break;
        }
    }
    return data_str;    
}

您可以从https://github.com/weed/p120801_CharacterEncodingLibrary

下载此库

我希望我的建议可以帮到你。