无法很好地解码NSString

时间:2015-07-02 08:09:59

标签: ios utf-8 encode latin1

我的服务器编码在ISO-8859-1中,并决定改用UTF-8。问题是在ISO中创建的文件名现在崩溃,因为我在我的代码中更改了编码类型。我尝试连接iOS应用程序并显示目录和文件,新闻显示良好,但旧的ISO没有。

如何检测文件名是以一种编码还是其他编码方式以正确的方式处理?因为现在,ISO中的文件名可以用UTF-8表示,但要访问的字符串不一样。 (例如:%E1p%F1->%C3%A1p%C3%B1)

我试试这个,但它不起作用:

NSString *isoL = [item.href stringByAddingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding];
char const *iso2utf = [isoL UTF8String];
NSString *utf = [[NSString alloc]initWithCString:iso2utf encoding:NSUTF8StringEncoding];

1 个答案:

答案 0 :(得分:1)

您需要让服务器声明响应的内容编码,就像HTTP一样。

我认为不可能自动检测ISO-8859-1 / UTF-8文本编码。