Unicode字符在不同的浏览器中显示不同

Unicode字符在不同的浏览器中显示不同,unicode,asp-classic,utf-8,character-encoding,diacritics,Unicode,Asp Classic,Utf 8,Character Encoding,Diacritics,所以。。。我还在地狱里 新问题 在我的电脑上,一切都显示得很完美。在所有浏览器中。在同事的电脑上,同样的故事。一切都很好。即使在我的一个Linux VPS上的elinks和w3m中,立陶宛语、拉脱维亚语和北欧字母的异国情调也能完美地表现出来 然而,我今天接到一些客户的电话,他们得到了通常的unicode欺骗组合。。。“Ô和其他类似的角色 对可能出现的问题有什么建议吗 技术信息: Classic ASP All files are stored as UTF-8 incl BOM All fil

所以。。。我还在地狱里

新问题

在我的电脑上,一切都显示得很完美。在所有浏览器中。在同事的电脑上,同样的故事。一切都很好。即使在我的一个Linux VPS上的elinks和w3m中,立陶宛语、拉脱维亚语和北欧字母的异国情调也能完美地表现出来

然而,我今天接到一些客户的电话,他们得到了通常的unicode欺骗组合。。。“Ô和其他类似的角色

对可能出现的问题有什么建议吗

技术信息:

Classic ASP
All files are stored as UTF-8 incl BOM
All files start with Codepage=65001 page directive
All files set the Content-Type to "text/html; charset=utf-8"

他们没有安装所需的字体

“Ô和其他类似的角色

这是显示为ISO-8859-1的UTF-8内容的典型情况

所有文件都将内容类型设置为“text/html;charset=utf-8”


是通过
还是通过
响应.AppendHeader()
?您确实需要将其添加为真正的响应头。否则,您将依赖于客户端平台默认编码(MSIE)和/或webbrowser可以做出的最佳猜测(FF)。您可以在客户端使用类似于。

的工具验证响应头?这就是这里缺失信息的关键部分。不,他们会得到空方块(MSIE)或内部带有十六进制代码的方块(FF)。例如,在。对于某些外来语言,您可以在FF方块中看到,其中包含十六进制代码,这仅仅意味着字符没有合适的字体。十六进制代码表示Unicode代码点。因为Chrome、Safari和Opera不存在。@DeadMG:这些代码显示无用的空方块以及MSIE。内容类型由IIS中的mime类型设置。*。asp注册为“text/html;charset=utf-8”。在这里的另一个问题中得到了这个解决方案,这些解决方案实际上也存在于HTTP响应头中吗?试试大写的
UTF-8
,你永远不知道需要处理哪些客户机。让我知道。实际上我现在看到,对于这个特定的文件,内容类型设置不正确。。。我可以通过在文件中设置Response.Contenttype来解决这个问题,但是为什么mime设置对某些文件有效,而对其他文件无效?对不起,ASP/IIS的详细信息我不知道:)很高兴你已经搞定了。
足以在所有浏览器中设置字符集,并且可以包括在内,以确保保存后页面仍能正常工作(将其内容类型信息剥离)。问题是,如果您设置了
内容类型,并且在真正的内容类型标头中有一个字符集,则标头会胜出,并且某些服务器可能会被配置为在默认情况下在内容类型中发送一个字符集。这确实是一个配置错误,但因为这很常见,因此最好始终从应用程序j设置HTTP标头以防万一。