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エンコーディングヘッダーなしで正常に機能したため、ex. ファイルをエンコードするUTF-16とうまくいくはずです。

于 2012-09-20T12:29:03.700 に答える
0

とった..

データのエンコードを変更してみてください

csvWriter.encoding = NSUTF16BigEndianStringEncoding;

それは私のために働いた..

于 2012-11-02T17:00:35.707 に答える