Java の文字化けの解決策
Java の場合、デフォルトのエンコード方式が UNICODE なので、中国語の It を使用してくださいまた、問題が発生しやすいため、一般的な解決策は次のとおりです:
1 | String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);
|
ログイン後にコピー
1. UTF8 は JSP の中国語文字化け問題を解決します
推奨チュートリアル: "java learning"
通常、各ページの先頭に次の内容を追加します:
1 2 3 | <%@ page language= "java" contentType= "text/html; charset=UTF-8" pageEncoding= "UTF-8" %>
<%@ page language= "java" contentType= "text/html; charset=UTF-8" pageEncoding= "UTF-8" %>
<% request.setCharacterEncoding( "UTF-8" ); %>
|
ログイン後にコピー
◆charset=UTF-8 は、JSP がクライアントに「UTF-8」として出力するエンコード方式を指定するために使用されます。
◆pageEncoding="UTF-8"、JSP エンジンが中国語の文字を含む JSP ページを正しくデコードできるようにするため、これは LINUX で非常に効果的です;
◆request.setCharacterEncoding("UTF- 8"); リクエストは中国語でエンコードされています。
それでも問題を解決できない場合があり、次のように対処する必要があります:
1 | String msg = request.getParameter( "message" ); String str= new String(msg.getBytes( "ISO-8859-1" ), "UTF-8" ); out.println(st);
|
ログイン後にコピー
2. Tomcat 5.5 の中国語の文字化けコード
%TOMCAT を入力するだけです。インストール ディレクトリ%/ webapps\servlets -Examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class ファイルが webapp ディレクトリ/filters にコピーされます。フィルタ ディレクトリがない場合は作成します。
2) 次の行を web.xml に追加します:
1 2 3 4 5 6 7 8 9 10 11 12 | <filter>
<filter-name>Set Character Encoding</filter-name>
<filter- class >filters.SetCharacterEncodingFilter</filter- class >
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
|
ログイン後にコピー
3)
2 を完了し、メソッド ソリューションを取得します
1) サーバーを開きますTomcat の .xml ファイルを開き、ブロックを見つけて次の行を追加します:
完全な内容は次のようになります:
1 2 3 4 5 6 7 | <connector
port= "80" maxThreads= "150" minSpareThreads= "25" maxSpareThreads= "75"
enableLookups= "false" redirectPort= "8443" acceptCount= "100"
debug= "0" connectionTimeout= "20000"
disableUploadTimeout= "true"
URIEncoding= "GBK"
/>
|
ログイン後にコピー
2) tomcat を再起動します。すべて問題ありません。
3. xmlHttpRequest 中国語の問題
ページ jsp に使用される GBK エンコーディング
code:
1 | <%@ page contentType= "text/html; charset=GBK" %>
|
ログイン後にコピー
javascript 部分
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 | function addFracasReport() {
var url= "controler?actionId=0_06_03_01&actionFlag=0010" ;
var urlmsg= "&reportId=" +fracasReport1.textReportId.value;
var xmlHttp=Common.createXMLHttpRequest();
xmlHttp.onreadystatechange = Common.getReadyStateHandler(xmlHttp,
eval ( "turnAnalyPage" ));
xmlHttp.open( "POST" ,url,true);
xmlHttp.setRequestHeader( " Content-Type " , "
application/x-www-form-urlencoded);
xmlHttp.send(urlmsg);
}
#p#
|
ログイン後にコピー
バックグラウンドjavaで取得したreportIdが文字化けしています転送方法が分かりません主な原因はxmlHttp.send(urlmsg);が今後どのようなエンコードになるのか分からないことです。後で Java を使用して転送しましたが、いくつかの方法を試しましたが成功しませんでした。
以上がJavaの文字化けの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。