我知道关于这个问题有很多答案,但我需要一些澄清。
据我所知,ASCII和Unicode都是字符集,例如,他们告诉你A是十进制(41),B是十进制(42)。
UTF-8、UTF-16、UTF-32和ANSI是编码他们的任务是将41和42的数字存储成他们喜欢的二进制形式,并管理它们的检索和转换回十进制。然后使用该字符集,您就可以获得相应的字符。
但是,我正在研究如何获得网页使用的字符集/编码,我在Firefox上做了tools>页面信息。
我可以这样读:charset=utf-8
(这是页面:http://www.leboncoin.fr/annonces/offres/ile_de_france/)
这是Firefox的bug吗?或者,我完全误解了字符集/编码?
您对字符集有一点误解,尽管这不是一个大问题。字符集只是可用字符的集合,它不必引用任何数字(尽管它们几乎总是这样)。参见:编码和字符集之间的区别是什么?
真正的问题是charset
的使用。它来自于一个HTML5元标签,通常看起来像这样:
<meta charset="utf-8" />
尽管名称,charset
实际上指定了HTML5中的字符编码,而不是字符集。这可能是由于历史上字符集和编码之间的混淆,因为在Unicode为单个字符集引入多种编码之前,这两者之间并没有太大的区别。