有些UTF-8字符不会显示在浏览器(Some UTF-8 characters do not sho

2019-07-17 11:36发布

一些UTF-8字符像UTF-8当量C2 96(连字符)的。 在浏览器上它显示为(以00 96 UTF框)。 而不是“ - ”(连字符)。 任何原因这种行为? 我们如何解决这个?

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

我发现,这可以用HTML实体进行处理。 有没有什么办法,无须转换为HTML实体来显示这个?

Answer 1:

我怀疑这是因为U + 0080和U + 009F(含)之间的字符是控制字符。 我还是微微一惊,他们表现出不同的时,在HTML比使用实体直接编码,但基本上你不应该使用它们下手。 U + 0096是不是真的“字号”,它的“防护区域的开始”。

看到U + 0080-U + 00FF代码图表的详细信息。 基本上,尽量避免控制字符...



Answer 2:

你在谈论的字符是一个短破折号,而不是一个连字符。 其Unicode代码点是U + 2013,和它的UTF-8编码是E2 80 93 ,而不是C2 96 。 您链接到表是不正确。 前两列都无关,与UCS-2或Unicode; 他们实际上包含窗口1252有问题的字符进行编码。 标记为“UTF-8十六进制”和“UTF-8原生”的列是完全错误的,至少针对行标记128159。 实体–– 表示的连接划线,但UTF-8序列C2 96表示非显示的控制字符。

你不应该需要手动反正编码的字符。 只要告诉你的文本编辑器(或任何你用它来创建内容),将文件保存为UTF-8。



Answer 3:

两个注意的原因是:

  1. 你确定你已经输出了正确的字符代码到浏览器? 在一些十六进制查看器最好检查一下。
  2. 您正在使用的字体没有这个代码点定义的字形。


文章来源: Some UTF-8 characters do not show up on browser