Struts 1.3 Ajax调用日文字符编码问题

Struts 1.3 Ajax call Japanese character encoding issue

我正在使用 Java 1.7 和 struts 1.3 框架。我在为日本客户工作。目前我的要求是使用 JQuery Ajax 调用将搜索键(包含日语字符串)发送到操作 class。但在动作方面,我发现一些日本字符被破坏了。

我的代码:

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 上尝试了很多解决方案,但都不适合我。任何帮助将不胜感激。 感谢您的任何帮助。

为了解决这个日语编码问题,使用URL编码机制,然后通过ajax调用发送数据。然后在 Struts 操作端,您只需使用 URL 解码器机制对其进行解码。 它将解决这个问题。 为了更清楚,请参阅下面的代码。

在Java脚本端从隐藏字段中获取数据时使用URL编码方法:

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

在Struts动作端使用URL解码器class解码字符串值:

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"));
       }