Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML字符实体和字符编码集_Html_Character Encoding_Html Entities - Fatal编程技术网

HTML字符实体和字符编码集

HTML字符实体和字符编码集,html,character-encoding,html-entities,Html,Character Encoding,Html Entities,在HTML文档中包含HTML实体时,实体是否需要来自指定要使用的文档的同一字符编码集 例如,如果我要在指定为UTF-8的HTML文档中使用版权标志,是否有必要使用Unicode HTML实体(&x00A9;),或者使用其他实体,例如ASCIIHTML实体(&169;)可以吗 请解释你的答案。我知道它会“起作用”,但是否有一种情况是它不会起作用的 谢谢 UTF-8编码的美妙之处在于,实际上可以只包含二进制字符。您根本不需要将其编码为一个实体。因此:) 哦,你只是想知道这两个实体之间的区别?没有。一

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

例如,如果我要在指定为
UTF-8
的HTML文档中使用版权标志,是否有必要使用Unicode HTML实体(
&x00A9;
),或者使用其他实体,例如
ASCII
HTML实体(
&169;
)可以吗

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


谢谢

UTF-8编码的美妙之处在于,实际上可以只包含二进制字符。您根本不需要将其编码为一个实体。因此:)

哦,你只是想知道这两个实体之间的区别?没有。一个用十六进制描述字节,另一个用十进制描述
©指定相同的字符-169相当于十六进制A9。它们都指定了版权符号。HTML中的字符实体始终引用Unicode代码点,这将在中介绍。因此,即使角色集发生更改,实体仍引用相同的字符

这也意味着您可以对实际不出现在所选字符集中的字符进行编码。我刚刚用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>
你好。本文件为©2010。你好

或:

你好。本文件为©;2010你好

或:

你好。本文件一式两份;2010你好

第一个仅在字符集支持“)”时有效。另外两个始终有效,但可读性较差。无论您使用的是什么文本编辑器,如果它值得使用的话,都应该能够告诉您它用什么字符集对文档进行编码

如果执行此操作,则需要确保web服务器将正确的字符集通知客户端,或者您的文档使用以下内容声明:

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


我已经使用UTF-8作为一个例子。XHTML应该在开头的
标记中设置字符。

通过“二进制字符”,您的意思是我可以从您的答案中复制符号并将其粘贴到我的HTML文档中(这意味着它看起来像代码中的符号),只要它是UTF-8,就可以了??这一点。如果你要对实体中的所有内容进行编码,那么使用UTF-8有什么意义?这就是Unicode的用途!对的有些字符仍然需要实体编码,但只有那些在HTML中具有语义意义的字符,如小于和大于。但版权标志只起作用(tm)。版权标志也出现在ISO-8859-1中。如果您正确地声明了HTML文档中使用的编码,以便浏览器能够正确地显示文本,那么ISO-8859-1也不需要使用实体。由于ISO-8859-1和UTF-8的第一个字节具有相同的字符映射,版权符号出现在其中,因此在HTML中显示它是一个相当安全的符号,而不使用实体。如果HTML文档作为ISO-8859-1文档发布到浏览器,则映射到多个字节的其他字符需要使用实体。如果多字节字符不存在实体。。。。。。然后你必须使用一些其他的编码,最合理的是UTF-8。ASCII编码的字符集中没有版权符号。他可能只是指ISO-8859-1(ISO拉丁语1)。我听过很多人用ASCII与这种编码互换,虽然技术上不一样,但我只是假设他们的意思是拉丁1。实际上,我是通过这样一个表来进行的:我假设,由于该表显示了版权符号的ASCII列,所以它在编码中。但是,我可以看出:这不包括版权符号。那么“ASCII”在前面的链接中指的是什么呢?现在人们对ASCII这个词的理解非常松散。它们几乎总是指ISO拉丁语1。请参见:正确,因此,如果出于某种原因您既不使用拉丁1也不使用Unicode作为文档字符集,您仍然可以使用这些实体显示版权符号。@Thanatos此信息的权威来源在哪里?我正在做的工作涵盖的范围比这个用例还广,我想了解更多细节。谢谢。@jeyoung你想在这些帖子的哪一部分寻找消息来源?文章中引用了如何对实体进行编码,不过今天我会链接到HTML5标准(但我不认为HTML5会修改这一方面)。如果您只是在查找数字(例如,如何将©翻译成
©;
):首先,我建议使用UTF-8,并只按字面意思编写字符,即只需在源代码中添加©或类似内容,因为它可以被人直接读取(RibaldEddie的答案)。否则,该数字仅为Unicode代码点。shapecatcher.com将允许您绘制所需的字符,…unicode.org有图表,谷歌搜索“unicode”通常有效,例如“unicode版权”。@Thanatos我指的是选择编码字符实体和按原样输入字符实体的指南。
<p>Hi there. This document is &copy;2010. Good day!</p>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">