Вот мой код и журналы, то это будет более эффективным, чем длинная речь :)символов Unicode в NSString
NSString* cat = [categories objectAtIndex:i];
NSLog(@"category : :%@:", cat);
NSString* decodedString = [NSString stringWithUTF8String:[cat cStringUsingEncoding:[NSString defaultCStringEncoding]]];
NSLog(@"category decoede : %@", decodedString);
LOG: категория:: Boissons Фра чес:
И после того, Я получаю это исключение: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSString stringWithUTF8String:]: NULL cString'
Я просто хочу преобразовать строки типа «Boissons fra? Ches» в «Boissons fraîches». Как я могу сделать ?
EDIT
Я просто хочу, чтобы получить содержимое файла CSV. Мой полный код:
// Getting content of CSV file
NSError* error;
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"categories" ofType:@"csv"];
NSString* data = [NSString stringWithContentsOfFile:filePath encoding:NSASCIIStringEncoding error:&error];
NSArray* categories = [data componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
for (int i = 0; i < categories.count; ++i) {
NSString* cat = [categories objectAtIndex:i];
NSLog(@"categorie : :%@:", [categories objectAtIndex:i]);
NSString* decodedString = [NSString stringWithUTF8String:[cat cStringUsingEncoding:[NSString defaultCStringEncoding]]];
NSLog(@"categorie : %@", decodedString);
[self.categories addObject:decodedString];
}
Посмотрите здесь: http://macresearch.org/cocoa-scientists-part-xxvi-parsing-csv-data –
Какая кодировка является фактическим CSV-файлом? Попробуйте 'NSUTF8StringEncoding', если вы этого не знаете. Или попробуйте запустить команду 'file' в файле из командной строки. Это должно показать вам кодировку файла. – rmaddy
Вы загрузили файл, используя 'NSASCIIStringEncoding'. Если файл действительно ASCII, то он не может правильно представлять «Boissons fraîches», и данные были потеряны. Однако я подозреваю, что файл не ASCII. Вы должны выяснить, какая кодировка была использована для создания файла. Если это исходит из программы, мы надеемся, что эта программа документирует используемую им кодировку. –