在一个objective-c/cocoa 应用程序中,我使用c 函数打开一个文本文件,逐行读取它并在第三方函数中使用一些行。在伪代码中:
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...
线在做什么而我不是?我在最初获取线路的方式上做错了吗?还是完全是别的东西?