我有一个 Web 应用程序,它读取几个输入字段(字母数字)的值,并使用 jQuery 的 $.ajax() 方法构造一个非常简单的 xml 传递给服务器。该 xml 的模板是:
<request>
<session>[some-string]</session>
<space>[some-string]</space>
<plot>[some-string]</plot>
...
</request>
当输入包含芬兰语变音字符(例如ä或ö)时,将此类请求发送到服务器会在不同浏览器的字符编码方面引发问题。例如,如果我在其中一个输入中添加单词Käyttötarkoitus ",Chrome 和 Firefox 向服务器发送完全相同的请求的方式如下:
铬合金:
<request>
<session>{string-hidden}</session>
<space>2080874</space>
<plot>Käyttötarkoitus</plot>
...
</request>
FF 12.0:
<request>
<session>{string-hidden}</session>
<space>2080874</space>
<plot>Käyttötarkoitus</plot>
...
</request>
这是我用来发送请求的代码片段:
$.ajax({
type: "POST",
url: url,
dataType: 'xml;charset=UTF-8',
data: xml,
success: function(xml) {
//
},
error: function(jqXHR, textStatus, errorThrown) {
//
}
});
为什么我会得到不同的编码以及如何摆脱这种差异?我需要解决这个问题,因为它会导致服务器端出现其他问题。