某些UTF-8字符类似于C2 96 (连字符)的UTF-8等效项。在浏览器上,它显示为(utf box with 00 96)。而不是‘-’(连字符)。这种行为有什么原因吗?我们如何纠正这一点呢?
http://stuffofinterest.com/misc/utf8.php?s=128 (代码请参考此网址)
我发现这可以用html实体来处理。有没有办法在不转换为html实体的情况下显示它?
发布于 2009-09-09 10:15:30
我怀疑这是因为U+0080和U+009F之间的字符是控制字符。我仍然有点惊讶,当直接在HTML中编码时,它们的显示与使用实体时不同,但基本上您不应该从一开始就使用它们。U+0096并不是真正的“连字符”,它是“受保护区域的开始”。
有关详细信息,请参阅U+0080-U+00FF code chart。基本上,尽量避免控制字符...
发布于 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。
发布于 2009-09-09 10:15:04
我想到了两个原因:
https://stackoverflow.com/questions/1398700
复制相似问题