我想简单地在一个超文本标记语言页面中显示勾号(✔)和十字(✘)符号,但它显示为一个方框或goop -œ“-显然与编码有关。
我已经设置了meta标签来显示utf-8,但是很明显我遗漏了一些东西。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
使用FireBug,我发现我的页面传递的标题实际上是“Content- Edit/Solution::text/html”,而不是UTF-8。使用Notepad++查看文件格式显示我的文件被格式化为"UTF-8,不带BOM“。将其更改为UTF-8符号现在可以正确显示...但是firebug似乎仍然指示相同的内容类型。
发布于 2009-11-08 21:44:55
您应该确保HTTP服务器标头是正确的。
具体来说,头部:
Content-Type: text/html; charset=utf-8
应该会出现。
如果存在HTTP标头,浏览器将忽略meta标记。
在提供服务之前,还要确保您的文件实际编码为UTF-8,请检查/尝试以下操作:
&#uuu;
.注意:如果您使用的unicode字符系统找不到字形(没有包含该字符的字体),您的浏览器应该会显示一个问号或一些类似块的符号。但是,如果您看到像这样的多个罗马字符,这表示存在编码问题。
发布于 2013-12-06 10:13:31
我知道答案已经被接受了,但我想指出一些事情。
设置content-type
和charset
显然是一种很好的做法,在服务器上设置要好得多,因为它可以确保整个应用程序的一致性。
但是,只有当我的应用程序所使用的语言使用了大量仅在UTF-8
字符集中可用的字符时,我才会使用UTF-8
。如果要在其中一种情况下显示unicode字符或符号,可以在不更改页面charset
的情况下执行此操作。
只要在其numeric character reference (NCR)
中提到符号,HTML
呈现器总是能够显示不属于页面编码字符集的符号。听起来很奇怪,但这是真的。
因此,即使您的html
有一个标头声明它的编码为ansi
或任何十六进制字符集,您也可以通过使用其iso
字符引用、十进制✓或十六进制✓来显示复选标记
所以很难理解为什么你会在你的页面上遇到这个问题。你能检查NCR值是否正确吗,这是一个很好的参考http://www.fileformat.info/info/unicode/char/2713/index.htm
发布于 2009-11-08 21:47:22
确保您实际将文件保存为UTF-8,或者为特殊字符使用HTML实体(&#nnn;
)。
https://stackoverflow.com/questions/1696619
复制相似问题