首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些UTF-8字符不会显示在浏览器上

某些UTF-8字符不会显示在浏览器上
EN

Stack Overflow用户
提问于 2009-09-09 10:05:11
回答 3查看 11.6K关注 0票数 4

某些UTF-8字符类似于C2 96 (连字符)的UTF-8等效项。在浏览器上,它显示为(utf box with 00 96)。而不是‘-’(连字符)。这种行为有什么原因吗?我们如何纠正这一点呢?

http://stuffofinterest.com/misc/utf8.php?s=128 (代码请参考此网址)

我发现这可以用html实体来处理。有没有办法在不转换为html实体的情况下显示它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-09 10:15:30

我怀疑这是因为U+0080和U+009F之间的字符是控制字符。我仍然有点惊讶,当直接在HTML中编码时,它们的显示与使用实体时不同,但基本上您不应该从一开始就使用它们。U+0096并不是真正的“连字符”,它是“受保护区域的开始”。

有关详细信息,请参阅U+0080-U+00FF code chart。基本上,尽量避免控制字符...

票数 5
EN

Stack Overflow用户

发布于 2009-09-09 10:49:13

您正在讨论的字符是连字符,而不是连字符。它的Unicode代码点是U+2013,它的UTF-8编码是E2 80 93,而不是C2 96。您链接到的表不正确。前两列与UCS-2或Unicode无关;它们实际上包含相关字符的windows-1252编码。标记为“UTF-8Hex”和“UTF-8Native”的列是完全错误的,至少对于标记为128到159的行是错误的。实体––表示短划线,但UTF-8序列C2 96表示不可显示的控制字符。

无论如何,您不需要手动对这些字符进行编码。只需告诉您的文本编辑器(或您用来创建内容的任何东西)将文件保存为UTF-8。

票数 6
EN

Stack Overflow用户

发布于 2009-09-09 10:15:04

我想到了两个原因:

  1. 是否确实已将正确的字符代码输出到浏览器?最好签入某个十六进制查看器。
  2. 您正在使用的字体在此代码点没有定义字形。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1398700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档