如何在php中将默认字符集设置为null

时间:2011-05-27 09:30:03

标签: php mysql

大家好我在phpinfo页面中发现charset是UTF-8。 Content-Type text / html;字符集= UTF-8 我想删除charset为null而无法更改php.ini文件是否可能。

5 个答案:

答案 0 :(得分:3)

根据RFC 2616,“null charset”与ISO-8859-1相同:

  

当没有明确的charset参数时   由发件人,媒体提供   “文本”类型的子类型是   定义为具有默认字符集   收到时“ISO-8859-1”的值   通过HTTP。

将charset设置为ISO-8859-1与因此根本不设置任何字符集相同。但是,由于Google Chrome实现了这个错误(默认为UTF-8),您应该考虑将字符集显式设置为ISO-8859-1(或者您正在使用的字符集)。

答案 1 :(得分:2)

您可以在文件ini_set("default_charset", "");

之上进行设置

答案 2 :(得分:1)

如果您有权限这样做,则可以基于每个脚本override INI settings。否则,您只需output an overriding headerheader("Content-type: text/html; charset=ISO-8859-1");或直接将其作为<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />包含在HTML输出中,显然可以用您想要的任何内容替换ISO-8859-1。

答案 3 :(得分:1)

您可以输出标题来设置它:

header('Content-type: text/html; charset=YOUR_CHARSET');

如果你没有在这个标题中设置一个字符集,浏览器会尝试自己猜测哪个不推荐。在西方国家,大多数时候猜测将是ISO-8859-1或ISO-8859-15。

答案 4 :(得分:1)

header('Content-Type: text/html'); // note the absence of charset=

但请注意,没有“null charset”这样的东西,在字节和字符之间总是存在某种映射(即使ASCII是这样的映射,而不是自然秩序)。你正在做的是告诉浏览器“我不知道这是什么字符集,只是猜一猜” - 这可能会也可能不会选择真正的字符集。