ホームページ >ウェブフロントエンド >フロントエンドQ&A >jquery ajax utf-8が文字化けした場合はどうすればよいですか?

jquery ajax utf-8が文字化けした場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2023-02-17 09:46:022228ブラウズ

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が文字化けした場合はどうすればよいですか?

#このチュートリアルの動作環境: Windows 10 システム、jquery3.2.1 バージョン、Dell G3 コンピューター。

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。