2017-11-02 6 views
0

Ich verwende Java 1.7 und Struts 1.3 Framework. Ich arbeite für einen japanischen Kunden. Momentan besteht meine Anforderung darin, einen Suchschlüssel (der eine japanische Zeichenkette enthält) über einen JQuery Ajax-Aufruf an die Action-Klasse zu senden. Aber auf der Aktionsseite habe ich festgestellt, dass einige japanische Schriftzeichen beschädigt sind.Struts 1.3 Ajax Anruf japanische Zeichencodierung Problem

Mein Code:

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

bin ich ganz neu, so ich weiß nicht, wie zu formatieren.

Ich habe viele Lösung auf SO versucht, aber nicht für mich arbeiten. Jede Hilfe wird geschätzt. Vielen Dank für Ihre Hilfe.

Antwort

0

Um dieses japanische Codierungsproblem zu lösen, verwenden Sie den URL-Codierungsmechanismus und senden Sie dann Daten über einen Ajax-Aufruf. Und dann auf der Aktionsseite von Struts müssen Sie es einfach mit dem URL-Decoder-Mechanismus dekodieren. Es wird dieses Problem lösen. Für mehr Klarheit siehe den folgenden Code.

Am Skript Seite Java, während der Verwendung URL-Codierverfahren Abrufen von Daten aus den verborgenen Bereich:

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

An der Struts Action-Seite Verwendung URLDecoder Klasse den String-Wert zu entschlüsseln:

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