我有一个asp页面,将表格中的一些文本渲染成html。一些文本中包含非空格
字符(unicode U+00A0
)。浏览器自动检测字符编码为unicode,这很好,但它没有正确呈现
。它将它们渲染为 (替换字符)。当我将页面编码更改为“Western”而不是“Unicode”时, 字符将消失。
非破坏空间不应该是要编码的Unicode编码网页的正常字符吗?是怎么回事?
我已经通过使用SQL Server的ASCII
和UNICODE
函数验证了存储在数据库中的字符是非中断空格,两者都返回160.
此外,当我运行此代码片段String.fromCharCode(160)
时,它返回“”,因此浏览器似乎确实理解该字符应该是一个空格。 ASP可以在查询它们并将它们写成html之间弄乱这些角色吗?
答案 0 :(得分:0)
asp文件使用ANSI编码保存。将文件的编码切换为UTF-8解决了这个问题。即使页面说它的字符集是UTF-8,我也猜不到,它真的不是。这解释了为什么西方'编码工作时" Unicode"没有。