我在html中将页面编码设置为utf-8:
meta http-equiv =“content-type”content =“application / xhtml xml; charset = UTF-8”
在HTTP Headers 中,我有:
Content-Type text / html;字符集= UTF-8
为什么不能正确显示é?
谢谢
更新:数据包含'é'从互联网抓取,爬虫是用Microsoft .Net编写的 . 我使用Mysql .Net Connector来连接mysql .
显示'é'的页面用PHP编写 .
5 回答
您需要添加更多信息,但
�
通常是被视为UTF-8的数据中ISO-8859-1字符的符号 .它来自
声称为UTF-8但实际保存为ISO-8859-1 / Windows-8252的源文件 - 在编辑器或IDE中检查文件编码
即使数据库表是UTF-8,也使用ISO-8859-1的数据库连接
最可能的解释是该页面不使用UTF-8进行编码,因此当浏览器尝试解码文本时,它使用错误的编码进行编码 .
您需要确保actual document encoding与claimed encoding匹配
确保您的文件开头没有BOM (byte order mark) . 我最近有这个问题,即使文件保存为utf8(多次检查),BOM混淆了firefox并且错误地显示了变音符号(我将html
<meta>
标签设置为正确的编码和http标头)有同样的问题,即使使用html设置charset = UTF-8只需用记事本打开html页面,使用编码UTF-8的File-SaveAs重新加载页面,它应该没问题 .
燕姿
如果您实际使用
htmlentities()
,您可以解码特定的代码片段这将编码字符串 . 使用$ flags,您可以在某种程度上决定要编码的内容 .
此函数可用于防止sql注入
尽管此参数在技术上是可选的,但如果您使用的是PHP 5.5或更早版本,或者如果您的
default_charset
配置选项可能针对给定输入设置不正确,则强烈建议您为代码指定正确的值 .编辑:来源htmlspecialchars