页面随机码问题的根源与分析

首先,关闭default_charset:在php的配置文件php.ini
1。页面没有指定字符集,Apache的配置defaultcharst GBK,和页面文件的编码是UTF-8
结果:代码,使用Wireshark捕获,发现服务器返回的头中指定:
复制代码代码如下所示:
内容类型:文本/ HTML字符集GB;

结论:当页面没有指定字符集,Apache的defaultcharset作品

2。页面指定的字符集是UTF-8,和Apache的配置defaultcharset GBK。页面文件是UTF-8
复制代码代码如下所示:





测试Apache defaultcharset




结果是一团糟。
结论:在Apache的配置defaultcharset,页面的charset声明将被忽略。

三.PHP header,字符集是UTF8,Apache的配置defaultcharst GBK,和页面文件编码为UTF8
复制代码代码如下所示:
标题(内容类型:文本/ HTML;字符集= UTF-8);

结果:页面显示正常。

4集defaultcharset关闭Apache
结果,页面显示为正常。

读apache2手册。
adddefaultcharset指令
当响应内容为纯文本或文本html时,添加到HTTP响应头的默认字符集。
语法adddefaultcharseton |了|字符集
默认值adddefaultcharsetoff
行动ServerConfig,虚拟主机,目录范围。htaccess
覆盖项FileInfo
状态核(c)
模块的核心
当且仅当应答内容为文本或文本或html时,此指令将被添加到HTTP响应头中。
默认字符集。从理论上讲,这将覆盖文档正文中标签指定的字符集,但它是实用的。
用户的行为通常是通过用户浏览器的setting.adddefaultcharsetoff决定将禁用此功能。
adddefaultcharseton将使组内apache.you ISO-8859-1字符的默认
你也可以指定是在IANA注册字符集名称的另一个字符集。
例如 uff1a
adddefaultcharsetutf-8

即,当Apache不指定defaultcharset,网页代码的页面的meta标签规定。
当指定Apache时,页面中的meta标记指定的代码将被忽略,但是脚本允许直接通过头部编码到客户机。

最后,还有一个问题没有得出结果:
何时未指定Apache和页面
如果我不指定自己的机器,默认是UTF8 ..