繁体   English   中英

HTML字符实体和字符编码集

[英]HTML character entities and character encoding set

在HTML文档中包含HTML实体时,实体是否需要来自指定文档使用的相同字符编码集?

例如,如果我要在指定为UTF-8的HTML文档中使用版权符号,是否有必要使用Unicode HTML实体( © )或者是否可以使用其他实体,例如ASCII HTML实体( © )?

请解释一下你的答案。 我知道它会“起作用”,但是有一种情况它会起作用吗?

谢谢!

© © 指定相同的字符 - 169相当于十六进制A9。 这些都指定了版权符号。 HTML中的字符实体始终引用Unicode代码点,这在HTML 4标准中有所涉及。 因此,即使您的字符集发生更改,您的实体仍会引用相同的字符。

这也意味着您可以编码实际未出现在您选择的字符集中的字符。 我刚刚在ISO-8859-1字符集中创建了一个文档,但它包含了一个希腊语lambda。 此外,ASCII不能直接编码版权符号,但它可以通过字符实体。

编辑:阅读其他答案的评论,我想澄清一点。 如果您使用UTF-8作为文档的字符编码,则可以在原始HTML源代码中按原样编写版权符号。 (你需要找到一些方法来输入它,当然:复制粘贴是常用的。)UTF-8允许你直接编码你想要的任何符号。 ISO-8859-1更受限制,而ASCII更是如此。 例如,在我的HTML中,如果我的文档是UTF-8文档,我可以这样做:

<p>Hi there. This document is ©2010. Good day!</p>

要么:

<p>Hi there. This document is &#xA9;2010. Good day!</p>

要么:

<p>Hi there. This document is &copy;2010. Good day!</p>

第一个仅在字符集支持“©”时有效。 其他两个总是有效的,但可读性较差。 无论你使用什么文本编辑器,如果值得它的重量,应该能够告诉你它编码文档的字符集。

如果这样做,您需要确保您的Web服务器通知客户端正确的字符集,或者您的文档使用以下内容声明它:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

我在那里使用UTF-8作为例子。 XHTML应该在开头<?xml ... ?>标记中包含字符集。

UTF-8编码的优点在于您实际上可以只包含二进制字符。 您根本不需要将其编码为实体。 因此:©

哦,你只是想知道这两个实体之间的区别? 空无一人。 一个用十六进制描述字节,用十进制描述另一个字节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM