字符编码适用于一页,但不适用于另一页

Character encoding works on one page, but not the other

本文关键字:适用于 一页 不适用 字符 编码      更新时间:2023-09-26

我有一个包含«字符的页面http://199.193.248.80/test/test.php

但是当我在http://199.193.248.80/test/test.html上阅读带有js的页面时,字符变成了

两个页面都使用Charset Windows-1252,所以我不知道为什么它在一个页面上工作而不能在另一个页面上工作。需要做些什么来解决这个问题?

这可能是

因为PHP在标头中设置的字符集(在提供.php时)与Apache(在提供.html时)不同。浏览器使用响应标头中提到的字符集;事实上,它覆盖了<meta>标签。

默认情况下,PHP 选择iso-8859-1我相信,但您可以使用以下命令覆盖 PHP 中的字符集:

header('Content-Type: text/html; charset=windows-1252');

或者更改全局更改的php.ini

另请参阅:

  • http://httpd.apache.org/docs/2.0/mod/core.html#adddefaultcharset(适用于阿帕奇)
  • http://www.php.net/manual/en/ini.core.php#ini.default-charset(用于 PHP)

我建议使用HTML实体形式:&laquo;

这样,您对文件使用什么字符集并不重要,因为您的浏览器只是解析它。

在 PHP 中,您可以使用 $str = htmlentities( $str ); 对字符串进行编码