2012-04-27 39 views
3

假设我的页面是UTF-8编码,并且我的代码调用a.php,其中a.php通过ajax(jQuery)$.get获取,并且调用的文件具有不同的编码,如windows-1255在头中指定? 幕后发生了什么? 谢谢当AJAX调用不同的编码页面时会发生什么?

+0

很好的问题。我的经验是浏览器无缝地将字符翻译为供内部使用的unicode(因此无论所声明的编码暗示什么字符集,所有文档都可以使用整个Unicode字符集),但我很想看到有人回答这个问题详细。我假设所有的字符都可以映射到unicode字符集,这我不知道。 – goat 2012-04-28 01:45:14

+0

也可能编辑你的问题,以澄清其他页面的声明编码是正确的。 – goat 2012-04-28 01:50:01

回答

1

好吧,一切都只是字节,直到Web浏览器解释它们并将它们转换为字符呈现给用户。因此,AJAX中发生的事情并不重要,因为无论如何都会存在编码冲突。例如,如果AJAX返回编码为UTF-8的斯堪的纳维亚字符'å',则它将使用两个字节0xc3a5进行编码。现在,如果Web浏览器希望编码为UTF-8,那么它们将呈现为用户的“å”,没有问题。但是,如果Web浏览器期望Latin1,它们本质上将被解释为两个字符,即0xc3和0xa5,它们恰好代表字符Ã¥。

+0

有没有方法可以改变数据从ajax带来的方式? – Jackson 2012-04-28 00:04:17

+0

最好的解决方案是始终使用相同的编码,但是,这并不总是可行的,在这种情况下,您必须知道两端的编码,然后将其转换为另一端。这可能是图书馆,这是我的知识停止的地方。 – LostOblivion 2012-04-28 00:15:28

相关问题