1

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

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

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

这里我发现

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

我需要

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

转换时的ASCII。除了 APPLE 的特殊字符之外,我如何将 ascii 转换为 ISO 8859-1。

4

2 回答 2

2
[NSString stringWithCString:asciiString encoding:NSISOLatin1StringEncoding];

asciiString你的char在哪里,ascii后跟一个空字节。

于 2012-08-01T14:35:45.117 回答
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下载此库

我希望我的建议对你有所帮助。

于 2012-08-01T14:30:18.127 回答