2017-11-02 18 views
0

私はJava 1.7とStruts 1.3フレームワークを使用しています。私は日本のクライアントのために働いています。現在私の要件は、JQuery Ajax呼び出しを使用してActionクラスにSearchキー(日本語の文字列を含む)を送信することです。しかし、アクション面では、私はいくつかの日本語の文字が壊れていることがわかった。Struts 1.3 Ajaxコール日本語文字エンコーディングの問題

マイコード:

var searchKey = $('#searchtxt').val(); 
// some Japanese string value for search. 

var data = { 
    // other properties 
    "searchKey": searchKey, 
    // Other properties 
}; 

$.ajax({ 
    type: 'POST', 
    url: url, 
    data: data, 
    contentType: "application/x-www-form-urlencoded;charset=UTF-8", 
    success: function (resultData){//dostuff} 
}); 

私はSO私はフォーマットする方法がわからないのはかなり新しいです。

私はSO上で多くの解決策を試しましたが、私の仕事はありません。どんな助けもありがとう。 ありがとうございました。

答えて

0

この日本語の問題を解決するには、URLエンコーディングのメカニズムを使用し、ajax呼び出しでデータを送信します。そして、Strutsのアクション側では、単にURLデコーダ機構を使ってデコードする必要があります。 この問題は解決します。 もっと明確にするために、以下のコードを参照してください。ジャバスクリプト側で

隠しフィールドの使用URL符号化方式からデータをフェッチしている間:文字列値を復号するStrutsアクションサイド使用URLDecoderのクラスで

var searchKey = encodeURIComponent($('#searchtxt').val().trim()); 
// It will encode the Japanese string before send from Ajax call. 

String searchKey=form.getSearchKey(); 
    if(!searchKey.isEmpty()) //Check for empty or null string 
     { 
     // Decode the string using URLDecoder class from java.net package 
     form.setSearchKey(URLDecoder.decode(searchKey, "UTF-8")); 
     } 
関連する問題