php – 当浏览器将’ISO-8859-1’作为元字符集时,浏览器将页面检测为UTF-8
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 当浏览器将’ISO-8859-1’作为元字符集时,浏览器将页面检测为UTF-8,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1739字,纯文字阅读大概需要3分钟。
内容图文
![php – 当浏览器将’ISO-8859-1’作为元字符集时,浏览器将页面检测为UTF-8](/upload/InfoBanner/zyjiaocheng/760/b780903fb5ce4a6c8708c8a3dbafe3c7.jpg)
我正在处理网站转移,在这个过程中我的字符集被搞砸了.起初,我转移了所有文件而没有任何改动,新服务器上的文件显示<?>特殊字符的图标.浏览一下浏览器的字符编码(Chrome和FF)就告诉我它是自动检测UTF-8.页面的元字符集设置为ISO-8859-1.复制是从多个数据库中的各个表中提取的(不要问).
在原始网站上,所有显示应该.在新网站上,<?> …我挖到它,在php.ini中找到默认的charset =“UTF-8”,将其设置为空.现在网站上的大部分页面显示都很好,浏览器识别出meta charset标签,每个人都很开心;也就是说,直到我导航到root下的文件夹.
这个文件夹中的文件,虽然它们的元字符集是ISO-8859-1,但它以某种方式告诉浏览器被读作UTF-8,这意味着我看到<?>在这些页面上.如果我将浏览器设置为ISO-8859-1,那么它显示正常.自动检测将其重置为UTF-8.有任何想法吗?
谢谢!
更新(从下面的评论中添加):
我按照martinstoeckli的建议在W3C checker上运行了页面,它告诉我HTTP内容类型是Content-Type:text / html; charset = utf-8而meta标签是< meta http-equiv =“Content-Type”content =“text / html; charset = ISO-8859-1”/> ;,这给了我一个冲突的字符编码声明错误.疯狂的是,我不能为我的生活弄清楚UTF-8声明的来源!它在任何文件中都没有,所有文件都保存了UTF-8 w / out BOM,php.ini设置为声明没有默认值,文件夹的.htaccess设置为像PatomaS建议的那样.
(对于它的价值,Mozilla的Web Sniffer确认HTTP标题Content-Type of text / html; charset = utf-8.)
更新:
虽然我没有像我提出的那样找到解决这个问题的方法,但我确定解决我的字符编码问题的最佳方法是重构所有内容以使用UTF-8编码.当然,这可能意味着你会在这里看到我更多令人兴奋的新手问题,例如“为什么不会utf8-encode()做我的?âùñdr?”
当然,这意味着神秘感仍然存在:当看起来所有内容配置不同时,是什么导致服务器发送UTF-8的HTTP Content-type字符集标题?
解决方法:
文件中是否包含BOM(字节顺序标记).要确保使用记事本打开文件并选中“编码”菜单,您还可以选择转换为ansi作为测试选项.
BTW使用utf-8到处都是一个更好的长期方法,我可以建议.
内容总结
以上是互联网集市为您收集整理的php – 当浏览器将’ISO-8859-1’作为元字符集时,浏览器将页面检测为UTF-8全部内容,希望文章能够帮你解决php – 当浏览器将’ISO-8859-1’作为元字符集时,浏览器将页面检测为UTF-8所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。