В приложении target-c / cocoa я использую функции c, чтобы открыть текстовый файл, прочитать его построчно и использовать некоторые строки в сторонней функции. В псевдо-код:
char *line = fgets(aFile);
library_function(line); // This function calls for a utf-8 encoded char * string
Это работает нормально, пока входной файл не содержит специальных символов (таких как акценты или спецификация UTF-8), после чего библиотечная функция выводит искаженные символы.
Однако, если я сделаю это:
char *line = fgets(aFile);
NSString *stringObj = [NSString stringWithUTF8String:line];
library_function([stringObj UTF8String]);
Тогда все работает нормально и строка выводится правильно.
Что это за линия [NSString...
, которой я не являюсь?
Я делаю что-то не так с тем, как линия извлекается изначально? Или это что-то совсем другое?