Java Webプロジェクトでは、中国の文字化けコードを解決する方法が次のように要約されています
最初のケース: JSPページを呼び出して中国語に文字化けコードを表示します
解決策:最初に、このJSPがエディターにファイルコンテンツを保存すると、UTF-8のエンコード形式を使用し、次に<%@ pageEncoding = "utf-8"%>をJSPページの先頭に追加して、この問題を解決することを確認します。
2番目のケース:サーブレットページを呼び出すと、文字化けコードが表示されます
問題の説明:ブラウザを介してサーブレットを呼び出すと、サーブレットに表示されるコンテンツが文字化けされます。
解決策:サーブレットが応答オブジェクトを使用して出力を使用する前に、Response.setContentType( "text/html; charset = utf-8")を実行します。出力コンテンツのエンコードをUTF-8に設定します。
3番目のケース: Postフォームで通過するパラメーター
問題の説明:JSP、HTML、またはサーブレットのフォーム要素を介して、対応するJSPまたはサーブレットにパラメーターを提出すると、受信したJSPまたはサーブレットで受信されたパラメーターが中国語で表示されます。
例えば:
JSPコードを次のように送信します。
<%@ページ言語= "java" pageencoding = "utf-8"%> <html> <head> <title> Enter form </title> </head> <body> <form id = "inputform" name "inputform" = "post" action = "display.jsp"> username:<input = "text" "/>>>> <" "/>> <pussword =" " name = "password"/> <br/> <入力タイプ= "submit" name = "submit" value = "submit" // </form> </body> </html>
パラメーターを受信するJSPコードは次のとおりです。
<% @ page Language = "Java" pageEncoding = "utf-8"%> <html> <head> <tilte> receive form </title> </head> <body> <%inserce request.setcharacterencoding( "utf-8"); %> username:<%= request.getParameter( "username")%> <br/>パスワード:<%= request.getParameter( "password")%> <br/> </body> </html>
解決策:投稿された提出されたパラメーターを受信する前に、request.setcharacterencoding( "utf-8")を使用して、受信したパラメーターのコンテンツ形式をUTF-8エンコーディングに設定します。受信フォームの挿入コンテンツを参照してください。もちろん、この種の文字化けの問題には中国のフィルターを使用するのが最善です。
4番目のケース: URIメソッドは、パラメーターを渡します
問題の説明:フォームを使用してパラメーターを渡すときは、投稿を通過するか取得できます。フォームは適用されません。リンクメソッドを使用してパラメーターを渡すこともできます。パラメーターを渡すこの方法は、基本的にパラメーターを取得するように渡すことです。この方法で渡されたパラメーターは、中国語に表示されるときに文字化けしているように見える場合があります。
のように:
コードを次のようにコピーします。
解決策:問題の本質は、GETメソッドで渡されたパラメーターコンテンツのデフォルトエンコードメソッドがISO8859-1を求められ、request.setcharacterencoding( "utf-8")を使用して問題を解決できないことです。この問題を解決するには、Tomcatサーバーの構成ファイルを変更します。 tomcatディレクトリのconf/server.xmlファイルの行43を変更します。
変更前:
<connector port = "8080" protocol = "http/1.1" maxthreads = "150" connectiontimeout = "200000" redirectport = "8443"/>
変更されたコンテンツ:
<connector port = "8080" protocol = "http/1.1" maxthreads = "150" connectiontimeout = "200000" redirectport = "8443" uriencoding = "utf-8"/>
これにより、このタイプの文字化けの問題を解決できます。
5番目の状況:
問題の説明:いくつかのクラスライブラリまたはフレームワークを使用する場合、ページコンテンツの国際化を達成するために、対応するプロパティファイルを記述する必要があります。プロパティファイルの中国のコンテンツも、表示されると文字化けされます。
解決策:この文字化けの問題は、JDKのNative2asciiツールによって解決できます。次のコマンドを使用します。
コードを次のようにコピーします:artive2ascii -Encoding utf -8 display.properties display_zh_cn.properties
文字化けされた問題の理由は、Javaコンパイラがラテン-1またはUnicodeによってエンコードされた文字ファイルのみを処理できるためです。
上記はこの記事に関するものです。すべての人の学習に役立つことを願っています。