2017-03-01 13 views
0

$ .ajax(javascript)は、ページ上に不正な文字セットを送信します。ページの文字セットはISO-8859-2で、永続的です。 $ .ajaxはxhr要求を無視します。私は必要ěščřžýáíé結果代わりに、うまく機能していないÄĹĄÄĹŞýåĂĂŠAJAXの文字セット

アンエスケープ、エスケープ、encodeURIComponentで()、は、decodeURIComponent()

コード:

    $.ajax({ 
         url: 'http://url/', 
         type: 'POST', 
         contentType: 'application/x-www-form-urlencoded; charset=iso-8859-2', 
         beforeSend: function(jqXHR) { 
          jqXHR.overrideMimeType("application/x-www-form-urlencoded; charset=iso-8859-2;"); 
         }, 
         data: { textarea:textarea } 
        }); 
+1

サーバのレスポンスも正しいレスポンスヘッダの文字セットを送信しますか?たとえば、[ネットワーク]タブでChromeのインスペクタをチェックインすることができます。 –

+0

ajaxで定義しているように、[ネットワーク]タブのリクエストヘッダーは正しいです。 Wierd。 – Ondrashek

+0

ページの 'charset'とは何ですか?変数 'textarea'には何が入っていますか?これが実際の 'textarea'要素からのテキストである場合、それはドキュメントの文字セットを継承します。いくつかの回避策については、[この質問](http://stackoverflow.com/questions/25665073/how-can-i-show-following-text-in-html-textarea)の回答を参照してください。 –

答えて

0

は、次のようにコンテンツタイプを設定してみてください:

contentType:"application/x-javascript; charset:ISO-8859-1" 

UPDATE contentTypeは送信するデータのタイプですので、application/json; charset = utf-8はapplication/x-www-form-urlencodedと同じように共通です。 charset = UTF-8、デフォルトです。私たちがここでやろうとしているのは、コンテンツタイプをISO-8859-1に設定することです。

+0

コードに変更はありません。 – Ondrashek