Unicode和UTF-8的差异,整个互联网上有很多不一致的地方



我知道关于这个问题有很多答案,但我需要一些澄清。

据我所知,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为单个字符集引入多种编码之前,这两者之间并没有太大的区别。

最新更新