我在ASP.net(VB)中有一个页面,我通过IIS提供服务。
该页面基本上是英国网站的翻译。
我有:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
位于代码顶部,所有字符在代码中都显示正常。
然而,在(所有)浏览器中,许多特殊的抛光字符(例如“Ł”)缺失,直接替换为“L”。这是IIS的事吗?或者它可能是别的什么?
ETA:我刚注意到从SQL数据库中绘制的波兰文本部分正在同一页面中正确显示..!奇!
进一步编辑: 我认为,我找到了问题的基本来源,但不是解决方案: 未正确显示的区域是页眉和页脚,它们通过Server Side Include导入到页面中。 它接缝在这个导入/注入中丢失了某种编码。 导入的文件是否应该有某种编码头?
答案 0 :(得分:1)
这听起来像静态内容文件中的编码问题。内容类型<meta>
与文件的实际物理编码无关。我怀疑文件是保存在Codepage 1252
而不是UTF-8。
我建议您打开* .aspx文件(我假设您将有问题的波兰语文本存储在文本编辑器中),该文件编辑器支持不同的编码(例如VS或Notepad2。不是写字板或Windows记事本)。使用UTF-8编码强制保存文件(在VS中,转到文件&gt;高级保存选项并确保选中“Unicode(带签名的UTF-8)”)。然后再次访问您的网站。
还要确保Content-Type HTTP标头也正确设置为UTF-8。