2011-11-27 9 views
11

$.post()で使用されるデフォルトのエンコーディングを変更するにはどうすればよいですか?ajax-charsetを変更するには?

引数はUTF-8でエンコードされます。 ISO 8859-1でどのようにエンコードできますか?

答えて

8

あなたが使用することができます

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

「beforeSend」も追加する必要があります。http://stackoverflow.com/a/14397845/92756 –

5

以下のようにAJAX呼び出し時に明示的にコンテンツタイプを与えることによって、あなたはデフォルトのコンテンツタイプを上書きすることを可能にします。

$.ajax({ 
     data: parameters, 
     type: "POST", 
     url: ajax_url, 
     timeout: 20000, 
     contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15", 
     dataType: 'json', 
     success: callback 
}); 

また、サーバー上で文字セットを指定する必要があります。

例:PHP

<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?> 

のために私は、これはあなたを助けることを願っています。

2

文字セットはもう変更することはできませんようです - $.ajaxドキュメントは述べている:

をW3CのXMLHttpRequest仕様は文字セットが常に UTF-8であることを指示。別の文字セットを指定しても、ブラウザは強制的に エンコーディングを変更しません。

関連する問題