在我的应用程序中,我使用 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];
这是显示的内容:
最佳答案
我在查看utf-8 html文件时也有这个问题。
我通过设置 <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
解决了这个问题在标题中。
UTF-16
或 Latin1
没有编码 header 工作正常,所以如果你前。在 UTF-16
中编码您的文件它应该工作。
关于ios - 在 QLPreviewController 中使用元音符号查看 UTF-8 编码的 CSV 文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557246/