Привет всем У меня есть проблема при загрузке файла из Интернета, из которого мне нужно раздобыть некоторые данные. Я открываю его и попытаться буфера, но это дает мне неправильные символы, потому что этот файл находится в Чехии ... Мой код:Objective C read file неправильная кодировка
- (void) sync {
NSString * path = @"/Users/syky/Documents/stats.csv";
NSFileHandle * fileHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSData * buffer = nil;
while ((buffer = [fileHandle readDataOfLength:1024])) {
//do something with the buffer
NSString * s = [[NSString alloc]initWithData:buffer encoding:nil];
NSLog(s);
break;
}
Независимо от того, какую кодировку я выбираю я всегда получаю сломанные символы, такие как
"Poø.";"Jméno"
мне нужно получить:
"Příjmení";"Jméno"
этот файл изначально генерируется Microsoft Excel, такие как * .csv файл экспорта ... При попытке открыть этот файл любой MAC OS X Текстовый редактор я сломанные символов, а также, но когда я открываю его на другой основе Windows, с магнитофонной пленки Microsoft Excel это работает просто отлично ...
Спасибо за вашу помощь
Решение:
- (void) sync {
NSString * path = @"/Users/syky/Documents/stats.csv";
NSFileHandle * fileHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSData * buffer = nil;
while ((buffer = [fileHandle readDataOfLength:1024])) {
NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingWindowsLatin2);
NSString *string = [[NSString alloc] initWithData:buffer encoding:encoding];
NSLog(string);
break;
}
Вы передаете 'nil' для параметра' encoding'? В самом деле? – trudyscousin
+ (id) stringWithContentsOfURL: (NSURL *) url usedEncoding: (NSStringEncoding *) enc error: (NSError **) error –
@trudyscousin, если бы вы могли читать немного больше Я говорю: независимо от того, какую кодировку я выбираю, я всегда получаю сломанные символы, такие как ... С nil я получаю самый близкий результат !!! –