一些UTF-8字符,如UTF-8等效于C2 96(连字符)。在浏览器上将其显示为(带有00 96的utf框)。而不是' - '(连字符)。这种行为的原因是什么?我们如何纠正这个?
http://stuffofinterest.com/misc/utf8.php?s=128(请参阅此网址以获取代码)
我发现这可以用html实体来处理。有没有办法在不转换为html实体的情况下显示它?
答案 0 :(得分:5)
我怀疑这是因为U + 0080和U + 009F之间的字符是控制字符。我还有点惊讶的是,当他们直接在HTML中编码而不是使用实体时,他们的表现方式不同,但基本上你不应该使用它们来开始。 U + 0096不是真正的“连字符”,它是“守卫区域的开始”。
有关详细信息,请参阅U+0080-U+00FF code chart。基本上,尽量避免使用控制字符......
答案 1 :(得分:5)
你所谈论的角色是一个冲刺,而不是一个连字符。其Unicode代码点为U + 2013,其UTF-8编码为E2 80 93
,而非C2 96
。您链接的表格不正确。前两列与UCS-2或Unicode无关;它们实际上包含有问题字符的windows-1252编码。标有“UTF-8 Hex”和“UTF-8 Native”的列只是完全错误,至少对于标记为 128 到 159 的行。实体–
和–
表示en-dash,但UTF-8序列C2 96
表示不可显示的控制字符。
无论如何,您不需要手动编码这些字符。只需告诉您的文本编辑器(或用于创建内容的任何内容)将文件保存为UTF-8。
答案 2 :(得分:1)
有两个原因浮现在脑海中: