在HTML中显示unicode符号

我想简单地在HTML页面中显示tick(✔)和cross(✘)符号,但是它显示为一个盒子或者goopœ – 显然是与编码有关的。

我已经设置meta标签来显示utf-8,但显然我错过了一些东西。

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

编辑/解决scheme:从发表的意见,使用FireBug我发现我的网页传递的头实际上是“内容types:文本/ HTML”,而不是UTF-8。 使用Notepad ++查看文件格式显示我的文件被格式化为“没有BOM的UTF-8”。 改变这只是UTF-8符号现在显示正确…但萤火虫似乎仍然表明相同的内容types。

您应该确保HTTP服务器标头是正确的。

特别是,标题:

 Content-Type: text/html; charset=utf-8 

应该在场。

如果HTTP头存在,那么元标记将被浏览器忽略。

还要确保你的文件在提供之前被实际编码为UTF-8,请检查/尝试以下操作:

  • 确保你的编辑器保存为UTF-8。
  • 确保您的FTP或任何文件传输程序不会混淆文件。
  • 尝试使用HTML编码的实体,如&#uuu;
  • 要确定的是,hexdump文件并且看起来像字符,对于✔,它应该是E2 9C 94。

注意:如果您使用unicode字符(系统找不到字形),则浏览器应显示一个问号或一些符号块。 但是如果你看到像你这样的多个罗马字符,这表示一个编码问题。

我知道一个答案已经被接受了,但是想要指出一些事情。

设置content-typecharset显然是一个很好的做法,在服务器上做更好,因为它确保了应用程序的一致性。

但是,只有当我的应用程序的语言使用了很多只能以UTF-8字符集提供的字符时,我才会使用UTF-8 。 如果您想在某种情况下显示unicode字符或符号,则可以在不更改页面charset的情况下执行此操作。

HTML呈现器一直能够显示不属于页面编码字符集的符号,只要您在numeric character reference (NCR)提及该符号即可。 听起来很奇怪,但它是真实的。

因此,即使你的html有一个标题,说明它有一个ansi或任何iso字符集的编码,你可以通过使用它的html字符引用显示一个复选标记,以十进制 – &#10003; 或在hex – &#x2713;

所以有点难以理解你为什么在你的页面上面对这个问题。 你可以检查NCR值是否正确,这是一个很好的参考http://www.fileformat.info/info/unicode/char/2713/index.htm

确保实际上将文件保存为UTF-8,或者使用HTML实体( &#nnn; )作为特殊字符。

与Nicolas不同的是, meta标签实际上并没有被浏览器忽略。 但是, Content-Type HTTP标头始终优先于文档中存在的meta标签。

因此,请确保您通过HTTP标头发送正确的编码,或根本不发送此HTTP标头(不推荐)。 meta标记主要是本地文档的后备选项,而不是通过HTTPstream量发送。

使用HTML实体也应该被认为是一个解决方法 – 这是摆脱真正的问题。 正确configurationnetworking服务器可以防止很多麻烦。

我认为这是一个文件问题,你简单地保存你的文件像1个字节的编码像拉丁-1。 谷歌你的编辑器,以及如何设置文件到utf-8。

我想知道为什么有编辑不默认utf-8。