1

私は Java EE のアプリケーションを持っており、ISO-8859-1 のデータベースを持っているので、ISO-8859-1 で jsp エンコーディングを行う必要があります... (私のページはすべて iso-8859-1 にあります)

Struts アクションへのリクエストを行う JavaScript コードを含む jsp があります。

これは私のjsコードです。

$.ajax({
    type:'GET',
    encoding:'iso-8859-1',      
    contentType: 'text/html;charset=ISO-8859-1',
    url: xUrl,
    success: function(){
        $("#MensajeOk").attr('style','display:block');
        $("#MensajeOk").delay(10000).slideUp(1000);
    }
});

IEとChromeでは、ISO-8859-1でリクエストコーディングを行うため、すべて正しいですが、FirefoxはリクエストをUTF-8でエンコードします。これは私にとって問題です。サーバー側ではISO-8859-1が必要であり、 FF回復できないキャラがいます。

miフォームは

<html:form action="/action.do" acceptCharset="iso-8859-1"> 
<input type="text" name="title">

そして私のJavaコードは

new String((request.getParameter("title")+"").getBytes("iso-8859-1"),"iso-8859-1"));

それを使用すると、IE と Chome ではテキストを正常に復元できますが、Firefox では失敗します。

他のオプションは、encodeURI('data') によって UTF-8 エンコーディングでリクエストを送信しますが、サーバー側ではテキストを UTF-8 から ISO-8859-1 に変換できません...

いくつかのアイデア???

どうもありがとうございました。

4

1 に答える 1

1

ドキュメントを見ると、 -というオプションはないようですが、encoding- オプションにはちょっとしたヒント (問題の解決策を含む) がありますcontentType

データは常に UTF-8 文字セットを使用してサーバーに送信されます。サーバー側でこれを適切にデコードする必要があります。

そのため、Firefox は正しく、他のブラウザは間違っているようです。 - オプションを削除しencodingて、サーバー側の変換を試みてください。

于 2012-05-04T07:10:34.283 に答える