Я извлекаю строку из содержимого url, таким образом:
NSString *urlStr = [NSString stringWithFormat:@"http://www.example.com/string_to_retrieve"];
NSURL *url = [NSURL URLWithString:urlStr];
NSString *resp = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:nil];
и записать его в файл, таким образом:
NSString *outFile = @"/path/to/myfile";
[resp writeToFile:outFile atomically:YES encoding:NSUTF8StringEncoding error:nil];
моя строка содержит несколько специальных символов, таких как "ö", которые должны быть представлены шестнадцатеричным значением "F6", но когда я пытаюсь открыть с шестнадцатеричным редактором файл, где написана моя строка, я вижу, что "ö" (F6 ) преобразуется в два других символа: "ö" (C3 B6)
Я попытался с несколькими другими строковыми кодировками в обоих
NSString *resp = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:nil];
и
[resp writeToFile:outFile atomically:YES encoding:NSUTF8StringEncoding error:nil];
но всегда с плохими результатами...
NSASCIIStringEncoding
кажется единственным способом, которым я могу получить эту строку из моего url: если я использую другие кодировки типа NSUTF8StringEncoding
, все, что я получаю, это nil
NSUTF8StringEncoding
кажется единственным способом, который я могу записать в свой файл: если я использую другие кодировки типа NSASCIIStringEncoding
, все, что я получаю, это файл с 0 байтами
Итак, как я могу правильно восстановить и записать эту строку в мой файл?