2

我有一个 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) {
        //
    }
});

为什么我会得到不同的编码以及如何摆脱这种差异?我需要解决这个问题,因为它会导致服务器端出现其他问题。

4

2 回答 2

0

在 dataType 上,尝试使用“application/xml”或“text/xml”而不是“xml;charset=UTF-8”

于 2012-06-18T09:15:47.040 回答
0

使用 encodeURI 对 uri 进行编码。而且您也必须在服务器中对其进行解码。我有同样的问题。我正在寻找更好的选择,因为 encodeURI 也对日期字段进行编码

于 2014-04-05T06:12:16.000 回答