Php 影响JS的HTTP与HTML字符集包括
我正在更改一个网站以使用iso-8859-1中的UTF-8字符集 当我更改此选项时:Php 影响JS的HTTP与HTML字符集包括,php,http,character-encoding,header,Php,Http,Character Encoding,Header,我正在更改一个网站以使用iso-8859-1中的UTF-8字符集 当我更改此选项时: 到 这一切似乎都很好,过账表单以UTF-8格式发送数据。太好了 但是当我设置这个 <?php header('Content-Type: text/html; charset=utf-8'); ?> javascript包含了我没有预料到的中断。显然,他们的代码中有一些第三方代码使用iso-8859-1编码中的字符,这些字符不能正确更改为utf-8。因此,修复javascript代码本身非
到
这一切似乎都很好,过账表单以UTF-8格式发送数据。太好了
但是当我设置这个
<?php header('Content-Type: text/html; charset=utf-8'); ?>
javascript包含了我没有预料到的中断。显然,他们的代码中有一些第三方代码使用iso-8859-1编码中的字符,这些字符不能正确更改为utf-8。因此,修复javascript代码本身非常简单
HTTP头设置为UTF-8+HTML内容类型设置为UTF-8
- 包括
- 影响过帐表单数据的编码
- 不影响javascript包含
- 但会影响过帐表单数据的编码
有人能解释一下为什么会发生这种情况,或者它可能是FireFox 17.0.1中的一个bug吗?如果您可以控制缓冲,使用其他方法,只需更改Javascript并使其成为UFT-8即可
关于这个问题。。。php头控制服务器发送的输出,因此php将更改内容。该META标记只是浏览器“小心,这是UTF-8”的一个信息。到底是什么中断了什么错误消息?不要使用php标头,您可能会收到已发送错误的标头。不要担心中断,这不是问题,问题是为什么这两种不同的改变字符集的方法会影响javascript字符集,而不会影响javascript字符集。我可以自己修复javascript错误。@faridmovsumov在。。。因此,可以在任何输出之前发送标题;)您是否将文件编码设置为UTF-8?例如,有问题的PHP/js文件?这仍然不能回答“为什么HTTP头会影响JavaScript包含的编码,而HTML头不会影响它?特别是因为HTTP头应该覆盖HTML中指定的那个。”那么,你是说你的[script src=“file.js”]将有不同的内容?你怎么能检查这个?也许你通过JS从HTML内容中获得了一些元素,这就是修改过的内容。好吧,那么你的JS文件是iso-8859-1?再说一次,你怎么知道js被修改了?你能在网上发布js并在这里添加链接吗。我在我的电脑上试过一个测试,但也许你只有一些特殊的字符。JS没有改变,浏览器假设它在UTF-8中,而不是。因此,当我更改HTML文档的HTTP头时,它才会中断。我想知道为什么浏览器正在更改字符集?我无法用一种更简单的方式来解释这一点,我感到震惊。的确,这很奇怪。试试