UTF-8 和 HTML 实体有什么区别?
5 回答
更多地将 UTF-8 视为一种无损和自同步将自然数列表映射到字节流的方法,以便您可以取回自然数(无损),如果您只是落在流的“中间”,那不是一个大问题。(自同步)
每个自然数恰好代表一个“字符”。
HTML 实体是一种以如下方式表示相同自然数的方法:
,代表自然数 127,在 unicode 中表示DEL
字符。
在 UTF-8 中,这是字节流:0111 1111
一旦超过 127,它就会变得不止一个八位字节,因此,128 变为:1000 0001 1111 1111
。
连续两个DEL
字符变成0111 1111 0111 1111
. UTF-8 的设计方式是,始终可以从字节流中检索“unicode 标量值”的原始列表,即使例如 4 个八位字节的字节流可以映射回 1 到 4 个不同的此类标量价值观。因此,UTF-8 是他们所说的“可变长度”。
一吨。HTML 实体主要用于转义 HTML 标记,以便可以在 HTML 中显示(不会混淆显示与输出)。例如,>
输出一个 >,而 > 关闭一个标签。虽然您可以使用 HTML 实体生成完整的 Unicode,但它的效率非常低且非常丑陋。
UTF-8 是 Unicode 的多字节编码,它涵盖了如何在经典的 US ASCII 代码页之外显示字符,而无需切换代码页和尝试混合代码页。单个代码点(将其视为一个字符,尽管这并不真正正确)可以由 6 个字节的数据组成。它用于表示基本多语言平面 (BMP) 内外的任何字符,例如重音字符、东亚字符以及凯尔特树书写 (Ogham) 以及其他字符集。
UTF-8 是一种编码,htmlentities
是一种使用户输入安全地显示在页面上的功能,因此 HTML 标记不会直接添加到标记中。请参阅手册。