JSP中国語の文字化けしを解決する

4089 ワード

JSPコード設定:


作成されるJSPコード(デフォルトは最初の行)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

置換
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

HTMLコード設定:


JSPにはHTMLの内容も含まれているので、HTML自体にもエンコード形式があります.HTMLのcharsetの値を、UTF-8などのJSP符号化と一致するように変更します.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Request中国語文字化けし:


jspの論理処理を行う場合、例えばフォームを提出し、フロントに登録するページから一部のデータを提出する場合があるが、後で処理するJSPページはrequestを通過する.getParameterが呼び出すと、文字化けして取得されます.
これは、前のJSPでは符号化フォーマットが設定されていたが、現在のJSPでは読み出しデータの符号化フォーマットが設定されていないためである.
次のコードを使用すると、request取得要求内容のデータ符号化を設定できます.
request.setCharacterEncoding("utf-8");

URLは中国語の文字化けしを伝達します:


ここではtomcatサーバファイルを構成してこそ、この問題を解決することができます.具体的な方法はtomcatのconfディレクトリの下でserverを見つけることです.xmlプロファイル、次のコードを見つけます.
<span style="font-size:18px"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />span>

符号化方式を追加すると、URIEncoding="gb 2312"またはutf-8がTomcatを再起動する問題が解決します.

POST中国語文字化けし:


Tomcatでは、POST方式で提出されたフォームの符号化フォーマットに対してISO-8859-1の符号化フォーマットがデフォルトであるが、この符号化フォーマットは中国語を符号化できないため、文字化けが発生する.この場合、フォーム内のデータを処理し、フォームパラメータを取得する際に符号化方式を設定することができ、フォームデータを受け入れるページを以下のように変更しました.
new String(userName.getBytes("ISO-8859-1"),"gb2312") %>  

次のようになります.
String userName = request.getParameter("userName");  
    String passWord = request.getParameter("password");  
    out.println(" userName :" +  new String(userName.getBytes("ISO-8859-1"),"gb2312")+"
"
); out.println(" pasword :" + new String(passWord.getBytes("ISO-8859-1"),"gb2312")+"
"
); %>