2

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) {
        //
    }
});

エンコーディングが異なるのはなぜですか? また、この違いをなくすにはどうすればよいですか? サーバー側で他の問題が発生しているため、この問題を修正する必要があります。

4

2 に答える 2

0

dataType に、「xml;charset=UTF-8」の代わりに「application/xml」または「text/xml」を入れてみてください

于 2012-06-18T09:15:47.040 に答える