我正在尝试将标头Content-Type
设置为text/html
,但未指定字符集。如果我运行以下代码:
header('Content-Type: text/html');
var_dump(headers_list());
我得到以下输出:
['Content-type: text/html;charset=UTF-8']
自动添加charset
参数! Content-Type
已更改为Content-type
。类型为text
的任何内容类型都会出现同样的情况。例如,Content-Type: text/foobar
变为Content-type: text/foobar;charset=UTF-8
。
如果我指定任何其他参数,则保留它们。例如,Content-Type: text/foobar; param=value
变为Content-type: text/foobar; param=value;charset=UTF-8
。
如果我指定charset
参数,则标题不会更改。例如Content-Type: text/html; charset=ISO-8859-1
保留Content-Type: text/html; charset=ISO-8859-1
。在这种情况下,标题字段名称也不会从Content-Type
更改为Content-type
。
如果我指定的内容类型的类型不是text
,则标题不会更改。例如,Content-Type: foo/bar
保持不变。
如果没有charset
参数,是否无法指定基于文本的内容类型?我使用的是PHP 7.1.1和Apache 2.4.26。