我在win7(x64)上安装了标准的XAMPP。 在过去的项目中,我的编码问题曾经发生,其中mysql编码与php enconding不匹配,后者有时会在其他编码中输出html,所以我决定使用utf-8对所有内容进行一致编码。UTF-8编码的html页面显示 (问号)而不是字符
我刚开始使用html标记,并且已经遇到麻烦。
我的页面使用UTF-8保存(没有BOM,我认为)
//更新:原来,这是情况并非如此。该文件实际上保存在ISO_8859-1。我后来发现了这一点,谢谢谢尔彭德利斯的回答。我必须返回并将我的项目设置(已设置为“ISO-8859-1”)更改为所需的“UTF-8”。
PHP设定在每htaccess来服务于UTF-8 .PHP的页面:AddCharset UTF-8 .php
HTML具有meta标签指定:
为了测试我设置采用php header('Content-Type:text/html; charset=UTF-8');
页面显然是在utf-8中发布的(firefox和chrome可以识别它),但是任何特殊字符(如é,á或¡)都将显示为�。同时查看源代码。
当拖放以上所有字符提到的编码设置正确呈现但无论哪种根据浏览器被检测节目的编码windows-1252或ISO-8859-1。
怎么回事?我很困惑。我会预料到完全相反的行为。
欢迎任何建议,谢谢!
编辑: 希望这可以帮助更多。这是响应报头(根据萤火虫)
HTTP/1.1 200 OK
Date: Sat, 26 Mar 2011 20:49:44 GMT
Server: Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.1
Content-Length: 91
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
2011-03-26
leugim