0

jQuery post() とシリアライズを使用して AJAX リクエストを送信しています。それはUTF-8を使用します。たとえば、'ś' が名前入力値の場合、JavaScript は を表示しますname=%C5%9B。フォーム エンコーディングを設定しようとしましたが、成功しませんでした。

<form id="dyn_form" action="dyn_ajax.xml" style="display:none;" accept-charset="UTF-8"> 

同じことが起こりencodeURI(document.getElementById("name_id").value)ます。Tomcat 5.5 でサーブレットを使用しています。

4

3 に答える 3

1

本当に UTF-8 の場合は、 を試してくださいdecodeURIComponent

于 2012-07-11T10:36:40.763 に答える
1

URIEncoded 文字列を正しくデコードするように要求オブジェクトを説得するのに常に苦労しました。

私は最終的に次のハックを行いました。

    try {
        String pvalue = req.getParameter(name);
        if (null != pvalue) {
            byte[] pbytes = pvalue.getBytes("ISO-8859-1");
            res = new String(pbytes, "UTF-8");
        }
    } catch (java.io.UnsupportedEncodingException e) {
        // This should never happen as ISO latin 1 and UTF-8 are always included in jvms.
    }

私はこれがあまり好きではなく、サーブレットの開発をやめてからしばらく経ちましたが、すでに tomcat 5.5 にあったので、試してみる価値があります。

于 2012-07-18T14:30:47.990 に答える
1

私は何度もこの種の問題を抱えていました。
ページが UTF-8 エンコードで保存されていることを確認します。

于 2012-07-11T10:29:52.063 に答える