我问的原因是as shown here有一个“标准”,它说要读取文件的第一行,它会告诉你文件是如何编码的:
The first line specifies the character set used for both the
wordlist and the affix file (should be all uppercase).
For example:
SET ISO8859-1
除非所有字符集都具有共同的7位ASCII范围,否则这对我来说既不合理又不可靠,这样你就可以“品尝”第一个新行字节:0xA
或0xD
。
但我不知道ASCII范围是否对所有字符集都是通用的。
答案 0 :(得分:3)
没有。 EBCDIC是非基于ASCII的,并且仍然在基于IBM大型机的软件环境中使用,具有极高的向后兼容性要求。
更受欢迎的是UTF-16和UTF-32,虽然基于ASCII,但由于所有额外的00
字节而向后兼容。
但是,只有几种方法可以对Basic Latin字母进行编码。 (存在的大多数字符编码的区别在于它们对重音和非拉丁字母的处理。)因此,读取这些文件的程序只需要处理一些编码单词SET
的可能方式:
53 45 54
用于基于ASCII的编码(Windows-1252,UTF-8等)E2 C5 E3
用于基于EBCDIC的编码(如果这些被认为值得支持)00 53 00 45 00 54
代表UTF-16BE 53 00 45 00 54 00
代表UTF-16LE 00 00 00 53 00 00 00 45 00 00 00 54
代表UTF-32BE 53 00 00 00 45 00 00 00 54 00 00 00
代表UTF-32LE 解码器可以简单地查找它们。