Objective-c / cocoaアプリでは、c関数を使用してテキストファイルを開き、1行ずつ読み取り、サードパーティの関数でいくつかの行を使用しています。疑似コード:
char *line = fgets(aFile);
library_function(line); // This function calls for a utf-8 encoded char * string
これは、入力ファイルに特殊文字(アクセントやUTF-8 BOMなど)が含まれ、ライブラリ関数がマングル文字を出力するまでは正常に機能します。
ただし、これを行うと:
char *line = fgets(aFile);
NSString *stringObj = [NSString stringWithUTF8String:line];
library_function([stringObj UTF8String]);
その後、すべて正常に動作し、文字列が正しく出力されます。
私がし[NSString...
ていないことをしているその行は何ですか?行が最初にフェッチされる方法に何か問題がありますか?それともまったく別のものですか?