[英]Wrong charset in HTTP Content-Type response
我有一个运行apache 2.0的日语RHEL服务器。
这是我的问题:
我想要Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=UTF-8
但目前它使用Content-Type: text/html; charset=Shift_JIS
响应Content-Type: text/html; charset=Shift_JIS
Content-Type: text/html; charset=Shift_JIS
我尝试过的:
AddDefaultCharset utf-8
添加到工作.htaccess
文件(无法编辑apache配置文件) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
到php文件 php_value default_charset UTF-8
添加到.htaccess
文件 用非常简单的test.php
测试:
<?php header('Content-Type: text/html; charset=UTF-8'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <h1>Test</h1> </body> </html>
以上都不适用。 有人请帮帮我。
顾名思义, AddDefaultCharset
更改默认字符集。 如果有另一个指令为您的文件类型设置不同的Content-Type,则将覆盖您的设置。
在这种情况下,如果你自己不这样做,PHP本身将始终设置Content-Type
标头,因此除非你将PHP作为Apache模块运行并使用php_...
Apache指令,否则无法从Apache配置它。
请查看default_charset
PHP指令以获取详细信息:
如果标头未被header()调用覆盖,则所有版本的PHP都将使用此值作为PHP发送的默认Content-Type标头中的字符集。
显然,您放在响应主体中的任何内容(例如<meta>
标记)都不会改变之前发送的响应标头 。
弄清楚问题与php.ini中的mbstring设置有关。 它从改变时起作用
mbstring.language = Japanese
mbstring.http_input = auto
mbstring.http_output = SJIS
至
mbstring.language = Japanese
mbstring.http_input = pass
mbstring.http_output = pass
但首先,请查看ÁlvaroGonzález对此问题的回答 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.