2012-03-04 47 views
1

在我的應用程序中,我使用CHCSVWriter生成一個UTF8編碼的CSV文件並使用QLPreviewController顯示它。該文件可能有一些特殊字符,如元音變音(ü,ä),並且我檢查了這些文件,並且它們正在正確生成。但是,當它們與QLPreviewController一起顯示時,字符會被搞亂!我已經檢查過我的編碼,它們都是UTF-8,所以代碼點沒有被破壞。 QLPreviewController有問題嗎?有什麼建議麼?在QLPreviewController中查看帶有元音變音的UTF-8編碼CSV文件的問題

這裏是我用來創建和顯示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]; 

這裏是正在顯示的內容:

enter image description here

+0

喜!我有同樣的問題。任何解決方案 – Frade 2012-11-02 15:43:53

回答

1

查看utf-8 html文件時,我也有這個問題。

我通過在標頭中設置<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>來解決這個問題。

UTF-16Latin1工作正常,沒有編碼頭,所以如果你前。編碼你的文件在UTF-16它應該工作。

1

香港專業教育學院有這個問題也和我認爲這是QLPReviewController中的一個錯誤。我向蘋果提交了一個bug,但還沒有看到任何解決方案。

0

明白了..

嘗試更改數據編碼

csvWriter.encoding = NSUTF16BigEndianStringEncoding; 

它爲我工作..