ホームページ > 記事 > ウェブフロントエンド > HTML投稿が文字化けした場合の対処法
html 文字化けした投稿の解決策: まず、対応するコード ファイルを開き、投稿によって渡された ISO エンコードされたコンテンツを UTF-8 形式のコンテンツに変更します。
この記事の動作環境: Windows 7 システム、HTML5 バージョン、DELL G3 コンピューター
HTML は post メソッドを使用して中国語コンテンツを送信しますエラー解決方法は文字化けです
今日例をやっているとき、postメソッドを使ってフォームを送信しましたが、漢字が入っていると別のページで表示すると必ず文字化けしてしまいます。
##ただし、送信メソッドを get に変更すると、このエラーは発生しません。 詳細なエラーについては、以下の図とコードを参照してください。 HTML コード:1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>测试Cookie的设置和获取</title> 6 </head> 7 <body> 8 <form action="/TestTomcat/SetCookie" method="post"> 9 站点名:<input type="text" name="name"><br> 10 站点URL:<input type="text" name="url"><br> 11 <input type="submit" value="提交" /> 12 </form> 13 </body> 14 </html>サーブレット コード、一部をインターセプト:
1 response.setContentType("text/html;charset=utf-8"); 2 3 PrintWriter out=response.getWriter(); 4 5 String title="设置Cookie实例"; 6 String docType="<! DOCTYPE html>\n"; 7 out.println(docType+ 8 "<html>\n"+ 9 "<head><title>"+title+"</title></head>"+ 10 "<body bgcolor=\"#f0f0f0\">\n"+ 11 "<h1 align=\"center\">"+title+"</h1>\n"+ 12 "<ul>\n" + 13 " <li><b>站点名:</b>" 14 + request.getParameter("name") + "\n</li>" + 15 " <li><b>站点 URL:</b>" 16 + request.getParameter("url") + "\n</li>" + 17 "</ul>\n" + 18 "</body></html>");エラー: 先頭にコードブロックの位置が間違っているのではないかと思い、上記のコードをdoPostに入れて試してみましたが、やはりエラーが発生しました。 それでは、ポストメソッドを使用して中国語を送信するにはどうすればよいでしょうか? 情報を検索して、投稿してください
この場合、response.setCharacterEncoding が影響します。response.setCharacterEncoding が設定されていない場合、値は null になり、iso はデフォルトで使用されます。再エンコード (デコード) するには -8859-1。
ブラウザは、自身のページのエンコード形式を開始エンコード形式として使用し、文字をバイトにエンコードして送信しますが、tomcat に関しては、tomcat は再エンコード (デコード) 形式に干渉しません。 response.getCharacterEncoding が null の場合、文字を再エンコード (デコード) するためにデフォルトで iso-8859-1 が使用されます。設定されている場合、文字は設定されたエンコード形式に従って再エンコード (デコード) されます。
String nameStr=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");ポストで渡された ISO エンコードされたコンテンツを UTF-8 形式のコンテンツに変更して出力します。 推奨学習: 「
HTML ビデオ チュートリアル 」
以上がHTML投稿が文字化けした場合の対処法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。