jQuery の $.ajax() メソッドを使用して、いくつかの入力フィールド (英数字) の値を読み取り、サーバーに渡される非常に単純な xml を作成する Web アプリケーションがあります。その xml のテンプレートは次のとおりです。
<request>
<session>[some-string]</session>
<space>[some-string]</space>
<plot>[some-string]</plot>
...
</request>
入力にフィンランド語のダイアクリティカル文字 ( äやöなど) が含まれている場合にこのようなリクエストをサーバーに送信すると、さまざまなブラウザーでの文字エンコーディングに関して問題が発生します。たとえば、入力の 1 つに「 Käyttötarkoitus」という単語を追加すると、Chrome と Firefox がまったく同じリクエストをサーバーに送信する方法は次のようになります。
クロム:
<request>
<session>{string-hidden}</session>
<space>2080874</space>
<plot>Käyttötarkoitus</plot>
...
</request>
FF12.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) {
//
}
});
エンコーディングが異なるのはなぜですか? また、この違いをなくすにはどうすればよいですか? サーバー側で他の問題が発生しているため、この問題を修正する必要があります。