Apache 中文乱码
通过抓包发现
1, 正常显示中文页面的字符集采用UTF-8
2, 而中文字符乱码的采用单字节编码的ISO-8859-1字符集,该字符集并不支持中文
问题来了,这个问题是由于LMAP哪个程序解析的问题呢
我们考虑到该页面为静态页面,根本不涉及PHP解析问题,所以,当client端发请求至web server 端后,web server 直接返回该页面给client端,因为页面中没有PHP代码
可以看到纯HTML文档是能够正常解析的
查看PHP解析的文档是否正常
我们发现PHP文档中的中文依然能正常显示,那么问题来了,为何有的页面有乱码呢
我们查看下网页代码,发现页面中并未声明使用什么解码方式来解析该页面,在head字段中添加一行代码,告知客户端解析的字符集查看结果
添加代码
效果预览
由此我们可得出两点结论
1, 和抓包相同,默认情况下页面使用ISO-8859-1这和抓包内容看到的相吻合
2, 网页代码中是否声明该页面使用的字符集类型也会影响页面的显示情况
当然我们也可以通过修改LAMP环境的默认字符集,同样也可正常获取页面
结论:每个环节都可能对最终结果产生影响,我们要解决问题必须深刻知道是哪个环节出了问题,这样才能很快解决问题。
END !
时间: 2024-10-01 21:01:28