是什么导致我的浏览器错误地呈现asp?

时间:2017-05-19 18:25:08

标签: asp.net unicode character-encoding

我有一个asp页面,将表格中的一些文本渲染成html。一些文本中包含非空格 字符(unicode U+00A0)。浏览器自动检测字符编码为unicode,这很好,但它没有正确呈现 。它将它们渲染为 (替换字符)。当我将页面编码更改为“Western”而不是“Unicode”时, 字符将消失。

非破坏空间不应该是要编码的Unicode编码网页的正常字符吗?是怎么回事?

我已经通过使用SQL Server的ASCIIUNICODE函数验证了存储在数据库中的字符是非中断空格,两者都返回160.

此外,当我运行此代码片段String.fromCharCode(160)时,它返回“”,因此浏览器似乎确实理解该字符应该是一个空格。 ASP可以在查询它们并将它们写成html之间弄乱这些角色吗?

1 个答案:

答案 0 :(得分:0)

asp文件使用ANSI编码保存。将文件的编码切换为UTF-8解决了这个问题。即使页面说它的字符集是UTF-8,我也猜不到,它真的不是。这解释了为什么西方'编码工作时" Unicode"没有。