【发布时间】:2011-08-28 16:27:00
【问题描述】:
我正在使用 PHP 5.3.5 配置我的 Apache/2.2.17 服务器。我的目标是创建一个干净的配置,默认为内容类型UTF-8。
php.ini:
default_charset = "UTF-8"
default_mimetype = "application/xhtml+xml"
我收到:
Content-Type: application/xhtml+xml
但需要:
Content-Type: application/xhtml+xml; charset=UTF-8
所有 Apache 的配置 (AddDefaultCharset UTF-8) 解决方案似乎都不起作用,我在编辑我的 php.ini 配置后重新启动了 Apache。
PHP 文档:
default_charset 字符串
默认情况下,PHP 始终在 Content-type: 标头中输出字符编码。要禁用字符集的发送,只需将其设置为空即可。
我已将default_mimetype 字段更改为text/html,突然间,它似乎工作了:Content-Type:text/html; charset=UTF-8。
将default_mimetype 设置回application/xhtml+xml 将不会发送charset=UTF-8。这是没有任何 Apache 配置的。
是 PHP 坏了,还是我错过了什么?
【问题讨论】:
-
我可能会建议在您的应用程序中手动设置编码,即使您讨厌它;) 使您的应用程序更便携。
-
Content-Encoding 没有指定内容的字符编码,而是指定了 additional content encoding 已应用于 gzip 或 等实体主体>放气.
-
@Gumbo 感谢您的指点。我不小心混合了 character-encoding 和 content-encoding。我已经更新了问题。
标签: php configuration character-encoding