所有字符集都有共同的ASCII吗?

时间:2017-06-23 14:05:12

标签: character-encoding ascii

我问的原因是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范围,否则这对我来说既不合理又不可靠,这样你就可以“品尝”第一个新行字节:0xA0xD

但我不知道ASCII范围是否对所有字符集都是通用的。

1 个答案:

答案 0 :(得分:3)

没有。 EBCDIC是非基于ASCII的,并且仍然在基于IBM大型机的软件环境中使用,具有极高的向后兼容性要求。

更受欢迎的是UTF-16UTF-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

解码器可以简单地查找它们。