QLPreviewController和UTF8字符

时间:2012-03-29 16:54:01

标签: iphone ios utf-8 character-encoding

我有一个iPhone应用程序,可以保存带有UTF8字符的文本文件(变音符号等)。如果我然后使用QLPreviewController查看该文件,则UTF8字符无法正确显示。如果我与其他应用程序(例如Evernote)查看相同的文件,或将它们复制到桌面并使用textedit查看它们,它们看起来是正确的。

是否有人知道此问题的问题或解决方法?

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,发现QLPreviewController似乎只能正确显示UTF16编码的文本。所以我在呈现之前重新编码了我的文本文件:

NSString* text = ... // Load UTF8-encoded text

NSError* error = nil;

if( [text writeToURL:localFileURL atomically:YES encoding:NSUTF16StringEncoding error:&error] )
{
    // Continue presenting the QLPreviewController from localFileURL
}
else
{
    NSLog( @"An error occured: %@", error );
}

在iOS 6.0.1上测试。