5
为什么“字符集”在实际使用中真的意味着“编码”?
长期以来困扰我的是,太多的软件使用术语“字符集”和“编码”作为同义词。 当人们引用unicode的“编码”时,它们总是表示一个规则集,用于将unicode字符表示为字节序列(例如ASCII或UTF-8)。这似乎是合理而直观的。想法是您使用指定的规则集将这些字符“编码”为字节。 由于这些规则集有时仅提供对所有unicode字符的某些子集进行“编码”的能力,因此您可能会想到,“字符集”(“字符集”的缩写)仅表示一组unicode字符,而无需考虑如何这些字符被编码。因此,编码将暗含一个字符集(像ASCII这样的编码,仅具有编码128个字符的规则,将与那些128个字符的字符集相关联),但是字符集不必暗含一种编码(例如,UTF-8,UTF -16和UTF-32都是不同的编码,但是可以编码相同的字符集。 但是-这是我的问题的症结-“字符集”一词在现实世界中的使用与该词的构造所暗示的不匹配。它几乎总是用来表示“编码”。 例如: charsetHTML中的属性用于指定编码 CharsetJava中的s是编码 charset和character setsMySQL再次是编码 这种对语言的好奇(滥用)年龄有多大?“直觉”的反直觉定义是如何形成的?它可能是从一个时间起源当有真正的是,在实践中,人物的使用编码与套之间有一个一对一映射他们的支持?还是有一些特别有影响力的标准或规范决定了这个词的定义?