当前位置:  开发笔记 > 编程语言 > 正文

在HTML中显示unicode符号

如何解决《在HTML中显示unicode符号》经验,为你挑选了4个好方法。

我想简单地在HTML页面中显示tick(✔)和cross(✘)符号,但它显示为box或goop" - 显然与编码有关.

我已经将元标记设置为显示utf-8,但显然我遗漏了一些东西.


编辑/解决方案:根据发表的评论,使用FireBug我发现我的页面传递的标题实际上是"Content-Type:text/html"而不是UTF-8.使用Notepad ++查看文件格式显示我的文件格式为"UTF-8无BOM".将此更改为UTF-8,符号现在可以正确显示...但是firebug似乎仍然表示相同的内容类型.



1> 小智..:

您应确保HTTP服务器标头正确无误.

特别是标题:

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

应该在场.

如果存在HTTP标头,则浏览器会忽略元标记.

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

确保您的编辑器将其保存为UTF-8.

确保您的FTP或任何文件传输程序不会弄乱该文件.

尝试使用HTML编码实体,例如&#uuu;.

要确定,hexdump文件并看作为角色,对于✔,它应该是E2 9C 94.

注意:如果使用unicode字符,系统无法找到字形(没有该字符的字体),则浏览器应显示问号或某些块,如符号.但是,如果您看到多个罗马字符,则表示编码问题.


请注意,要在CSS` :: before`选择器的`content`属性中使用unicode字符,需要使用反斜杠表示法.例如:'\ 2713'而不是'ઙ'.

2> Akshay..:

我知道答案已被接受,但想指出一些问题.

设置content-typecharset显然是一个很好的做法,在服务器上执行它会好得多,因为它可以确保整个应用程序的一致性.

但是,我UTF-8只会在我的应用程序的语言使用很多只在UTF-8charset 中可用的字符时使用.如果要在其中一种情况下显示unicode字符或符号,则可以在不更改charset页面的情况下执行此操作.

HTML渲染器始终能够显示不属于页面编码字符集的符号,只要您在其中提及符号即可numeric character reference (NCR).听起来很奇怪,但确实如此.

因此,即使您html的标题声明它具有编码ansi或任何iso字符集,您也可以使用其html字符引用显示复选标记,十进制 - ✓ 或者以十六进制表示 - ✓

因此,您有点难以理解为什么您在页面上遇到此问题.你能检查NCR值是否正确,这是一个很好的参考资料http://www.fileformat.info/info/unicode/char/2713/index.htm


"但是,只有当我的应用程序的语言使用大量仅在UTF-8字符集中可用的字符时,我才会使用UTF-8"为什么?转换的缺点是什么?
@dumbledad:非常好的问题,我想我让自己的偏见覆盖了我的答案.我的意思是,如果你的整个应用程序已经非utf-8,那么将它改为单个页面的应用程序可能会有太大的作用.此外,如果您的编程语言和内容不需要utf-8字符,您可能会意外地复制粘贴编辑器将使用的垃圾字符(因为它处于utf-8模式),但代码将在执行期间失败.话虽如此,当你可以,更新你的编码和字符集

3> Guffa..:

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


@Peter,您可以通过代码引用任何字符.试试✔ 打勾.

4> Konrad Rudol..:

与Nicolas提出的不同,meta浏览器实际上并未忽略该标记.但是,Content-TypeHTTP标头始终优先meta于文档中标记的存在.

因此,请确保您通过HTTP标头发送正确的编码,或者根本不发送此HTTP标头(不推荐).该meta标签主要是为未通过HTTP发送流量的本地文档的后备选项.

使用HTML实体也应该被视为一种解决方法 - 这是围绕真正的问题悄悄进行的.正确配置Web服务器可以防止很多麻烦.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有