在我的html5页面中,大约80%的字符串是unicode。与我的本地服务器完美配合。当上传到我的在线服务器时,页面不能正确显示unicode内容。相反,它们都是问号!
当我开始编码页面时,我已经设置了meta标签:
<meta charset="UTF-8">
在Chrome浏览器上检查收到的响应头,"utf-8"编码不存在。所以我添加了php header()
来发送HTTP头,像这样:
header('Content-type: text/html; charset=utf-8');
现在,响应报头显示了utf-8编码,但页面没有呈现unicode字符串。仍然是问号!
我使用了我的cPanel(在线服务器)中的文件管理器,当我选择在线编辑页面时,它打开了utf-8编码的页面并完美呈现!也就是说上传文件时没有出错。对吧?
我也尝试过这个meta标签(替换短的):
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
还是没用!unicode内容不是来自数据库。它完全硬编码在页面上。
测试与谷歌Chrome, Firefox和Internet Explorer。所有人的表现都一样!关于我应该在哪里调整的想法吗?
我的服务器是HostGator提供的VPS .
不确定它是否有效,但您也可以尝试将文件编码转换为UTF-8(没有BOM)。
解决方案是由Lisa Miskovsky提供的(查看她在这篇文章上面/下面的回答)。谢谢丽莎。
我所做的是,改变编码通过转到Encoding
菜单栏,然后选择编码在UTF-8 Without BOM
,在我的notepad++编辑器。现在也不需要显式地发送HTTP头(刚刚测试过)。我认为,它会考虑元标签的字符集,因为没有HTTP头。