【问题标题】:Problems viewing UTF-8 encoded CSV file with umlauts in QLPreviewController在 QLPreviewController 中查看带有变音符号的 UTF-8 编码 CSV 文件时出现问题
【发布时间】:2012-03-04 17:39:14
【问题描述】:

在我的应用程序中,我使用 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];

下面是显示的内容:

【问题讨论】:

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

标签: ios encoding csv utf-8 qlpreviewcontroller


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      知道了..

      尝试更改数据编码

      csvWriter.encoding = NSUTF16BigEndianStringEncoding;
      

      它对我有用..

      【讨论】:

        猜你喜欢
        • 2015-11-04
        • 2019-12-31
        • 1970-01-01
        • 1970-01-01
        • 2019-02-25
        • 1970-01-01
        • 2017-07-16
        • 2014-08-30
        • 1970-01-01
        相关资源
        最近更新 更多