JSPページの文字化けし問題の解決


JSPページを新規作成すると、デフォルトでは「ISO-8859-1」と符号化されています.ISO-8859-1に収録されている文字はASCIIに収録されている文字のほか、西欧語、ギリシャ語、タイ語、アラビア語、ヘブライ語に対応する文字記号も含まれています.ユーロ記号の出現は比較的遅く、ISO-8859-1には収録されていない.漢字はもちろんありませんが、漢字の文字セットはGBK(繁体字あり)とGB 2312(中国語簡体字)で、GBK符号化規格はGB 2312に対応しています.だからJSPページには一般的に次の3つの文があり、基本的に文字化けして表示されません.
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page contentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
 
しかし、MYSQlに接続すると、文字化けしが発生します.MySQLデータベースのデフォルトコードはLatin 1です.Latin 1はISO-8859-1の別名です.一部の環境ではLatin-1と書きます.mysqlデータベースをインストールするときは、GBKまたはGB 2312としてコードフォーマットを選択することができます.インストールされていることに気づかなければ、解決するのは難しくありません.
 
1,        JSPページの操作で漢字の内容をMYSQLデータベースに挿入したい場合は、符号化フォーマットを変換するだけでいいです.具体的な操作は以下の通りです.
<%
String example=”     MYSQL    ”;
example=new String(example.getBytes(“GB2312”),” Latin1”);
%>
 
2,        MYSQLの漢字を取り出してJSPページに表示します.つまり、上の逆操作です.
     <%
example=new String(example.getBytes(“Latin1”),”GB2312”);
%>
 
要するに一言でLatin 1とGB 2312の間を変換すればいいのです!