我有一个Web应用程序,它读取几个输入字段(字母数字)的值,并使用jQuery的$ .ajax()方法构造一个传递给服务器的非常简单的xml。 该xml的模板是:
<request>
<session>[some-string]</session>
<space>[some-string]</space>
<plot>[some-string]</plot>
...
</request>
当输入包含芬兰变音字符(例如ä或ö)时,向服务器发送此类请求会引发使用不同浏览器进行字符编码的问题。例如,如果我在其中一个输入中添加“strong>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) {
//
}
});
为什么我会得到不同的编码,如何摆脱这种差异?我需要解决这个问题,因为它在服务器端引起了其他问题。
答案 0 :(得分:0)
在dataType上,尝试使用“application / xml”或“text / xml”而不是“xml; charset = UTF-8”
答案 1 :(得分:0)
使用encodeURI编码uri ..你也必须在服务器中解码它。我有同样的问题。我正在寻找更好的选择,因为encodeURI也对日期字段进行编码