1

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

这是我用来创建和显示 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];

这是正在显示的内容:

在此处输入图像描述

4

3 回答 3

1

我也有这个问题,我认为这是 QLPReviewController 中的一个错误。我向 Apple 提交了一个错误,但还没有看到任何解决方案。

于 2012-08-26T14:19:16.630 回答
1

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

我通过<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>在标题中设置来解决它。

UTF-16或者Latin1在没有编码头的情况下工作正常,所以如果你前。在其中编码您的文件UTF-16应该可以工作。

于 2012-09-20T12:29:03.700 回答
0

知道了..

尝试更改数据编码

csvWriter.encoding = NSUTF16BigEndianStringEncoding;

它对我有用..

于 2012-11-02T17:00:35.707 回答