Apache的默认编码是ISO
我不得不第一次处理编码,我很困惑PHP,Apache和浏览器如何处理编码。 PHP和Apache默认使用ISO-8859-1,但大多数网站都是UTF-8。 ISO-8859-1在什么时候转换为UTF-8? 另外,由于PHP使用ISO-8859-1,它怎样才能读取UTF-8网页?
Apache在默认情况下不会“使用”任何编码,它的工作与理解或转换文本编码几乎没有任何关系。 PHP默认不会“使用”ISO-8859,PHP的字符串没有相关的编码。
事实是,许多PHP的核心字符串函数在其操作中都采用ASCII或ISO-8859编码,并且没有适当的处理其他编码的能力。 然而,值得再次说明的是,作为数据类型的PHP字符串本身没有任何编码,没有什么能阻止你在PHP中使用任何编码的字符串,甚至PHP也提供了正确处理字符串操作的函数任何任意编码。 所以,只要你做得对,没有什么能阻止你用PHP处理和输出UTF-8。
Apache然后并不关心你发送给客户端的是什么,它在任何编码(或二进制数据)方面都不以任何方式支持。 它可能做的唯一的事情就是将这样的HTTP头添加到响应中:
Content-Type: text/html; charset=iso-8859-1
此标题仅用于通知客户端收到的内容。 这个头文件不是基于你发送的实际内容,Apache既不关心也不检查也不转换任何东西。 它只是设置这个标题,这就是它的全部。 您应该配置Apache以设置与您实际从PHP输出的编码相对应的正确charset
值,其默认值仅为iso-8859-1
。 或者你可以从PHP设置一个Content-Type
头来阻止Apache添加一个。 就这样。
有关更多信息,请参阅每个程序员绝对需要了解的有关编码和字符集以处理文本的问题,以便在Web应用程序中处理Unicode正面。
链接地址: http://www.djcxy.com/p/25129.html上一篇: Apache's default encoding is ISO
下一篇: 8 problems PHP/MySQL