私はdojoとstruts 1.3.8を使用し、dojo.xhrGetを介してé、°、ù、€のようないくつかの特殊文字をsave stilluts saveBillに渡したいと思います。私はそれが私にDOJO xhrGet json with special character
è la prova n°10
を与えたアクションでJSONを印刷するとき、問題がどこにあるか私にはわからない。しかし、私はまた、使用...すべてのJSPでUTF-8に、すべてのコンテンツタイプを設定しますutr-8でエンコーディングするためのstrutsフィルタ...何も...どこが間違っていますか? これはJavaScriptコード
var billJson = {"row":"0","descr":"è la prova n°10"};
dojo.xhrGet({
url: "saveBill.do",
headers: {'bill': billJson, 'Content-Type': 'application/json; charset=UTF-8'},
handleAs: "text",
load: function(response, ioArgs) {
showMessage(response);
},
error: function(message, ioArgs) {
showMessage(message);
}
});
であり、これは、応答ヘッダ(Firebugのコピーから&ペースト)
Host localhost:9080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,**;q=0.8
Accept-Language it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset UTF-8,*
Keep-Alive 115
Connection keep-alive
bill {"row":"0","descr":"è la prova n°10"}
Content-Type application/json; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer http://localhost:9080/CA3_S_001/login.do
Cookie invoiceTreeSaveStateCookie=undefined%2C000001%2C000014; JSESSIONID=0000QeyArD4K7CDr_oyNkrpw9Zk:-1
おかげです!
"bill"というヘッダーフィールドにデータを渡していますか? JSONを渡しているときに、なぜhandleAs = textを使用していますか? "text"はエスケープしないので、ASCII以外の文字をエンコードする必要があります。 –
あなたのサーバーはコンテンツ上でutf-8を宣言していますが、サーバーのコンテンツがutf-8で実際にエンコードされていますか? – peller