我有一个http://199.193.248.80/test/test.php
包含 « 字符的页面。
但是当我打开js阅读这个页面时http://199.193.248.80/test/test.html
,字符变成了?</p>
两个页面都使用 Charset Windows-1252,所以我不知道为什么它可以在一个页面上工作,而在另一个页面上却不行。需要做什么来解决这个问题?
我有一个http://199.193.248.80/test/test.php
包含 « 字符的页面。
但是当我打开js阅读这个页面时http://199.193.248.80/test/test.html
,字符变成了?</p>
两个页面都使用 Charset Windows-1252,所以我不知道为什么它可以在一个页面上工作,而在另一个页面上却不行。需要做什么来解决这个问题?
这可能是因为 PHP 在标头中设置的字符集(在提供 . 时.php
)与 Apache(在提供 时.html
)不同。浏览器使用响应标头中提到的字符集;它实际上覆盖了<meta>
标签。
默认情况下 PHP 选择iso-8859-1
我相信,但您可以使用以下命令覆盖 PHP 中的字符集:
header('Content-Type: text/html; charset=windows-1252');
或更改php.ini
全局更改。
也可以看看:
我建议使用 HTML-entity 表单:«
这样,您对文件使用什么字符集并不重要,因为您的浏览器只是解析它。
在 PHP 中,您可以使用$str = htmlentities( $str );
对字符串进行编码