在文本文件中读取法语字符

时间:2011-05-05 18:35:56

标签: iphone objective-c c

你好不能在文本文件中读取法语口音(如'é'), 这是我用来打开和读取文件的代码片段......

FILE* file = fopen( [MyFileName UTF8String], "r, ccs=UTF-8");
if (file != 0)
{
    while(fgets(buffer, 1024, file) != NULL)
    {      
        NSString* string = [[NSString alloc] initWithCString: buffer];
        //Do many things.....
    }
    fclose(file);
}

我看不出问题出在哪里,我的文件在UTF8中正确编码......

谢谢!

2 个答案:

答案 0 :(得分:2)

c中的fgets函数只是ASCII,你需要使用fgetws。这是用于多字节编码的fgets的宽版本。

答案 1 :(得分:1)

您可以直接使用fopen方法,而不是fgetsNSString来阅读stringWithContentsOfFile:usedEncoding:error:中的文件内容。

NSString *fileContent = [NSString stringWithContentsOfFile:myFilePath usedEncoding:NSUTF8StringEncoding error:NULL];