我在win7(x64)上安装了标准的XAMPP。
在过去的项目中遇到了编码烦恼的部分,其中mysql编码与php enconding不匹配,后者有时在其他编码中输出html,所以我决定使用utf-8一致地编码所有内容。
我刚刚开始使用html标记,并且已经遇到麻烦了。
>我的页面使用utf-8保存(没有BOM,我想)
//更新:事实证明不是这样。该文件实际上已保存ISO_8859-1。后来我发现谢谢谢尔·潘德里斯的回答。我不得不回去将我的项目设置(设置为“ISO-8859-1”)更改为所需的“UTF-8”。
> php被设置为每个.htaccess在utf-8中的.php页面与:AddCharset UTF-8 .php
> html具有指定的元标记:< meta http-equiv =“Content-Type”content =“text / html; charset = utf-8”/>
>要测试我设置使用的php头(‘Content-Type:text / html; charset = UTF-8’);
该页面显然是在utf-8(firefox和chrome识别它),但任何特殊字符,如é,á或¡将只显示为 。同时查看源代码。
当删除上述编码设置时,所有字符都将正确呈现,但检测到的编码显示Windows-1252或ISO-8859-1,具体取决于浏览器。
怎么来的?我很困惑我会预料到这是完全相反的行为。
欢迎任何建议,谢谢!
编辑:
希望这有助于更多。这是响应标题(根据firebug)
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