Javascript 字符编码在一页上有效,但在另一页上无效

Javascript 字符编码在一页上有效,但在另一页上无效,javascript,encoding,character-encoding,Javascript,Encoding,Character Encoding,我有一页http://199.193.248.80/test/test.php包含«字符的 但是当我在js上阅读这个页面时http://199.193.248.80/test/test.html,字符变为� 两个页面都使用字符集Windows-1252,所以我不知道为什么它在一个页面上工作,而在另一个页面上不工作。需要做些什么来解决这个问题?我建议使用HTML实体表单:« 这样一来,您对文件使用的字符集就无关紧要了,因为您的浏览器只是解析它 在PHP中,您可以使用$str=htmlen

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

但是当我在
js上阅读这个页面时http://199.193.248.80/test/test.html
,字符变为�


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

我建议使用HTML实体表单:
«

这样一来,您对文件使用的字符集就无关紧要了,因为您的浏览器只是解析它


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

这可能是因为PHP在头中设置的字符集(在提供
.PHP
时)与Apache(在提供
.html
时)不同。浏览器使用响应标题中提到的字符集;它实际上覆盖了
标记

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

header('Content-Type: text/html; charset=windows-1252');
或者更改
php.ini
以进行全局更改

另见:

  • (适用于Apache)
  • (适用于PHP)

如果使用文本编辑器打开两个文件,两个文件是否定义了相同的字符编码?添加到html中page@swapnesh那不行anything@Sasquiha它在chrome中可以工作,但在任何其他浏览器中都不行,因为除了我提供的字符外,还有其他字符会中断。我也不想把每个unicode字符都转换成html实体,应该有一个清楚的解释为什么它不起作用,我引用:“需要做什么来修复这个问题?”。我已经提供了一个解决方案。它不适合你的原因可能有数百万个。它可能是您的浏览器、操作系统或服务器。您应该首先使用html实体。这确实提供了一个解决方案,但不是最干净的。我有几个文档,它们不仅仅是带有许多打印语句的单行字符串。我正在寻找一种解决方案,它将影响整个文档的速度优化。很有趣。。您建议在php文件中设置什么?
header('Content-Type:text/html;charset=UTF-8')所需UTF-8的位置charset@KevinDukephp不是问题所在,如果我正确理解您的问题,您应该看看Apache;或者,两个字符集应该是相同的