ホームページ >ウェブフロントエンド >フロントエンドQ&A >jquery ajax utf-8が文字化けした場合はどうすればよいですか?
#このチュートリアルの動作環境: Windows 10 システム、jquery3.2.1 バージョン、Dell G3 コンピューター。Jquery ajax utf-8 文字化けの解決策: 1. contentType のエンコーディングを「utf-8」に設定し、コードを「contentType: "application/x-www-form-urlencoded;charset=utf-8」に設定します。 ""; 2. PrintWriter オブジェクトを取得する前に、"resp.setContentType("text/text;charset=GBK");" を設定します。
jquery ajax utf-8 コードが文字化けした場合はどうすればよいですか?
jQuery AJAX リクエストの文字化けコードと返される文字化けコード 1. jQuery AJAX リクエストはバックグラウンドで文字化けコードとして受信されます contentType を utf-8、background 通常は正常にデコードできます例:contentType: "application/x-www-form-urlencoded; charset=utf-8",
jQuery(form).ajaxSubmit({ url: "doLogin?user=a", type: "post", dataType: "json", contentType: "application/x-www-form-urlencoded; charset=utf-8", success: showLoginResponse });contentType: "application/x-www-form-urlencoded; charset=UTF-8" を追加しない場合、そして、escape() を使用すると、
# が表示されます。 ##「投稿本文には、コンテンツの長さが指定するバイト数よりも少ないバイトが含まれています」というエラーが表示されます。
2. jQuery AJAX は文字化けを返します
エンコーディングをどのように設定しても、クライアントが受信するデータは常に文字化けしていることがわかりました。以下の例を見てください。何か問題がありましたか?
void saveTempKind(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter pw = resp.getWriter(); resp.setContentType("text/text;charset=GBK"); try { //DO PROCESS pw.write("成功"); }catch(Exception e){ pw.write("失败"); } }
問題は resp.setContentType("text/text;charset=GBK"); ステートメントは
PrintWriter pw = resp.getWriter();
の後ではなく、前にある必要があります。上記の例のような場合、レスポンスのエンコードをどのように設定しても、フロントエンドの文字化けの問題は変わりません。考えられる理由は、pw が PriintWriter を取得する前にエンコーディングが決定されていることです。したがって、エンコーディング ステートメントは、PrintWriter オブジェクトを取得する前に行う必要があります。
推奨学習: 「
jQuery ビデオ チュートリアル」
以上がjquery ajax utf-8が文字化けした場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。