jquery ajax postコミットデータ文字化け
1669 ワード
html 5のアプリケーションをjqueryで処理するときはfirefoxでテストするのが普通で、ユーザーがpadでアクセスするときに文字化けしていると言いますが、
やはり自分で試してみると、chromeとieカーネルの下にこの問題があることがわかりました.この問題はページ属性がutf-8に設定されている場合、firefoxだけが転送されたcharset=utf-8のヘッダファイルです
chromeもieも指定していないので、文字化けして問題が発生した.
解決方法:
または次の操作を行います.
おすすめは1つ目ですが、実際に自分の状況を見て、encodeURIComponentで文字変換をすることをお勧めする人もいます
ajaxがデータを提出して文字化けした経験をまとめます
文字化けしを避けるためには、以下のステップが可能です
解決策
1、ファイル符号化、データベース符号化、ウェブページcontent-type符号化を含む符号化の統一を維持する
チェックして
中国語はすべてUTF-8を使うことを提案して、gbk/gb 2312を使って文字化けして現れるかもしれません
2,getではなくpostを使用して送信
getメソッドは、リンクを介してパラメータが渡され、urlEncode(符号化)が自動的に行われますが、ブラウザごとに符号化の仕方が異なる場合があります.postを使用すると、このような状況を避けることができます.
3,jsフロントエンドescape符号化により再送信し,バックグラウンド復号によりデータを取得する
これらはネットで検索できます
4,グローバルにcontentTypeを設定し、符号化を指定する
jquery ajaxはutf-8を使用して送信データを符号化するため、ieは送信時にcharset=utf-8を加えず、文字化けしてしまう(IEデフォルトではiso-8859-1符号化)
やはり自分で試してみると、chromeとieカーネルの下にこの問題があることがわかりました.この問題はページ属性がutf-8に設定されている場合、firefoxだけが転送されたcharset=utf-8のヘッダファイルです
chromeもieも指定していないので、文字化けして問題が発生した.
解決方法:
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
$.post("test.php", { name: "i5a6", time: "2pm" },
function(data){
process(data);
}, "json");
または次の操作を行います.
$.ajax({
url:url,
type:"POST",
data:data,
contentType:"application/x-www-form-urlencoded; charset=utf-8",
dataType:"json",
success: function(){
...
}
})
おすすめは1つ目ですが、実際に自分の状況を見て、encodeURIComponentで文字変換をすることをお勧めする人もいます
ajaxがデータを提出して文字化けした経験をまとめます
文字化けしを避けるためには、以下のステップが可能です
解決策
1、ファイル符号化、データベース符号化、ウェブページcontent-type符号化を含む符号化の統一を維持する
チェックして
中国語はすべてUTF-8を使うことを提案して、gbk/gb 2312を使って文字化けして現れるかもしれません
2,getではなくpostを使用して送信
getメソッドは、リンクを介してパラメータが渡され、urlEncode(符号化)が自動的に行われますが、ブラウザごとに符号化の仕方が異なる場合があります.postを使用すると、このような状況を避けることができます.
3,jsフロントエンドescape符号化により再送信し,バックグラウンド復号によりデータを取得する
これらはネットで検索できます
4,グローバルにcontentTypeを設定し、符号化を指定する
jquery ajaxはutf-8を使用して送信データを符号化するため、ieは送信時にcharset=utf-8を加えず、文字化けしてしまう(IEデフォルトではiso-8859-1符号化)
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});