我有一些带有重音字符的文本文件,但我不知道编码,我希望文本在NSTextField中按原样显示。
我可以使用[NSString stringWithContentsOfFile:]但不推荐使用此方法。所有其他方法都要求用户提供文本编码。我不想使用任何试图猜测编码的方法,因为:1。它们不会一直工作,2。我真的只想以NSTextField的方式显示文件的内容
那我该怎么办?
答案 0 :(得分:2)
我真的只想以NSTextField中的方式显示文件的内容。
你问的是不可能的,“它的方式”取决于的编码。该文件包含一系列字节,这些字节只是8个0和0的字符串。 1分的。你必须解释那些位串。您可以一次取四个并将它们解释为32位整数,或32位浮点数或UTF32 - 每次都会得到不同的结果。或者你可以一次一个地把它们解释为ASCII,UTF,EBCDIC等等 - 你会得到不同的结果。
最接近“它的方式”是将字节转储为二进制,八进制或十六进制 - 即od
命令行命令将为您执行的操作。您可以尝试弄明白,例如正如file
命令所做的那样,或者您需要知道。 (另见this question。)
答案 1 :(得分:-1)
我最终使用了:
[NSString stringWithContentsOfFile:filePath encoding:[NSString defaultCStringEncoding] error:nil]
这给我的结果与[NSString stringWithContentsOfFile:]