Ios 在QLViewController中使用umlauts查看UTF-8编码的CSV文件时出现问题

Ios 在QLViewController中使用umlauts查看UTF-8编码的CSV文件时出现问题,ios,encoding,csv,utf-8,qlpreviewcontroller,Ios,Encoding,Csv,Utf 8,Qlpreviewcontroller,在我的应用程序中,我使用CHCSVWriter生成一个UTF8编码的CSV文件,并使用QLPreviewController显示它。该文件可能有一些特殊字符,例如umlauts(ü,ä),我已经检查了这些文件,它们被正确生成。但是,当使用QLViewController显示这些字符时,字符就被搞乱了!我一直在检查我的编码,它们都是UTF-8,所以代码点没有被破坏。QLEVIEWCONTROLLER有问题吗?有什么建议吗 以下是我用来创建和显示CSV文件的代码: NSString *path =

在我的应用程序中,我使用CHCSVWriter生成一个UTF8编码的CSV文件,并使用QLPreviewController显示它。该文件可能有一些特殊字符,例如umlauts(ü,ä),我已经检查了这些文件,它们被正确生成。但是,当使用QLViewController显示这些字符时,字符就被搞乱了!我一直在检查我的编码,它们都是UTF-8,所以代码点没有被破坏。QLEVIEWCONTROLLER有问题吗?有什么建议吗

以下是我用来创建和显示CSV文件的代码:

NSString *path = @"my path";

CHCSVWriter *csvWriter = [[CHCSVWriter alloc] initWithCSVFile:path atomic:NO];
csvWriter.encoding = NSUTF8StringEncoding;
NSDictionary* w;
for (w in items) {
    [csvWriter writeField:[w valueForKey:@"a"]];
    [csvWriter writeField:[w valueForKey:@"b"]];
    [csvWriter writeLine];
}
[csvWriter closeFile];
[csvWriter release];

QLPreviewController *ql = [[QLPreviewController alloc] init];
[ql setDataSource:self];
[self presentModalViewController:ql animated:YES];
[ql release];
下面是正在展示的内容:


我也有这个问题,我认为这是QLVeviewController中的一个bug。我向苹果提交了一个bug,但还没有看到任何解决方案。

我在查看utf-8 html文件时也遇到了这个问题

我通过在标题中设置
解决了这个问题

UTF-16
Latin1
在没有编码头的情况下运行良好,因此如果您在
UTF-16
中对文件进行编码,它应该可以运行。

明白了

尝试更改数据编码

csvWriter.encoding = NSUTF16BigEndianStringEncoding;

这对我很有用。

嗨!我也有同样的问题。有什么解决办法吗??