Character encoding 所有字符集是否都有共同的ASCII码?
我问这个问题的原因是有一个“标准”规定读取文件的第一行,它会告诉你文件是如何编码的:Character encoding 所有字符集是否都有共同的ASCII码?,character-encoding,ascii,Character Encoding,Ascii,我问这个问题的原因是有一个“标准”规定读取文件的第一行,它会告诉你文件是如何编码的: 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
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范围是否对所有字符集都是通用的。no.是基于非ASCII的,并且仍然在具有极端向后兼容性要求的基于IBM大型机的软件环境中使用
更流行的是和,虽然基于ASCII,但由于所有额外的00
字节,它们向后不兼容
尽管如此,对基本拉丁字母进行编码的方法还是很少。(现有数百种字符编码的最大区别在于它们对重音字母和非拉丁字母的处理。)因此,读取这些文件的程序只需要处理几种可能的编码单词SET
:
用于基于ASCII的编码(Windows-1252、UTF-8等)53 45 54
用于基于EBCDIC的编码(如果认为这些编码值得支持)E2 C5 E3
- UTF-16BE的
005300450054
- UTF-16LE的
53 00 45 00 54 00
- UTF-32BE的
00 00 53 00 00 00 00 45 00 00 00 54
UTF-32LE53 00 00 45 00 00 00 54 00 00
解码器可以简单地查找所有编码。从技术上讲不是,不。实际上,今天使用的大多数编码都是。如果有一个标准告诉您这样做,那么可以安全地假设所有本应使用该标准的文件都共享该约束,不是吗?在“品尝”时为行长度设置一个合理的限制,这样你就不会被随机垃圾文件(包括非ASCII编码)抛弃。我把“标准”放在引号里,因为据我所知,它不是真正的标准。这可能更像是一种惯例。我同意大多数人可能有ASCII字符的共同点,但我不认为公约不允许非ISO-8859-*字符集,例如。