Проблемы с просмотром файла CSV в кодировке UTF-8 с умлаутами в QLPreviewController - PullRequest
1 голос
/ 04 марта 2012

В моем приложении я создаю CSV-файл в кодировке UTF8 с помощью CHCSVWriter и отображаю его с помощью 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];

А вот что отображается:

enter image description here

Ответы [ 3 ]

1 голос
/ 20 сентября 2012

У меня также есть эта проблема при просмотре html-файлов utf-8.

Я решил ее, установив <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> в шапке.

UTF-16 или Latin1 отлично работали без заголовка кодировки, так что если вы бывший.закодируйте ваш файл в UTF-16, он должен работать.

1 голос
/ 26 августа 2012

У меня тоже есть эта проблема, и я думаю, что это ошибка в QLPReviewController.Я подал ошибку в Apple, но пока не видел ни одного разрешения.

0 голосов
/ 02 ноября 2012

Понял ..

попробуйте изменить кодировку данных

csvWriter.encoding = NSUTF16BigEndianStringEncoding;

у меня это сработало ..

...