JSP の文字化けコードを解決するには、まず JSP の文字化けコードの原因を理解する必要があります。
1. サーバーをセットアップして MYSQL をインストールするときに、このエンコードが Web ページと一致しない場合は、エンコードを選択するように求められます。 JSP ページが文字化けする可能性があります。
2. PHPMYADMIN や mysql-front などのシステムでデータベースを作成する場合、エンコーディングを選択するように求められます。このエンコーディングが Web ページと一致しない場合、JSP ページが文字化けする可能性があります。
3. テーブルを作成するときに、エンコーディングを選択するように求められます。このエンコーディングが Web ページのエンコーディングと一致しない場合、JSP ページが文字化けする可能性があります。
4. テーブルの作成時にフィールドを追加するときにエンコーディングを選択できます。このエンコーディングが Web ページのエンコーディングと一致しない場合、JSP ページが文字化けする可能性もあります。
5. ユーザーが送信した JSP ページのエンコーディングが、データを表示する JSP ページのエンコーディングと一致しないため、JSP ページが文字化けする可能性があります。
たとえば、ユーザーがデータを入力する JSP ページは big5 コードですが、ユーザー入力が表示される JSP ページは gb2312 です。これにより、100% JSP ページが文字化けします。
6. 文字セットが間違っていることに注意してください。
1. 一部の Web サイトで通常表示されるテキストには、複数のエンコーディングが使用されている場合があります。たとえば、繁体字中国語の文字は、big5 エンコーディング、utf-8 エンコーディング、または gb エンコーディングである可能性があります。つまり、簡体字中国語でエンコードされた繁体字中国語の文字もあれば、繁体字中国語でエンコードされた簡体字中国語の文字もあるということを理解する必要があります。
簡体字中国語のエンコードを使用して Web ページを作成している場合、エンコードは GB2312 に設定されています。香港および台湾からの訪問者が繁体字中国語の情報を送信すると、コードが文字化けする可能性があります。解決策は、(1) Web サイトのエンコードを utf-8 に設定することです。 (2) 長期間運営されており、古いデータが多く、簡体字中国語の設定を変更できない場合は、ページを設定することをお勧めします。 GBKにエンコードします。
GBK と GB2312 の違いは、GBK は GB2312 よりも多くの文字を表示できることです。簡略化されたコードで従来の文字を表示するには、GBK のみを使用できます。
7.MYSQL データベースへの JSP 接続ステートメントで指定されたエンコーディングが正しくありません。
8. JSP ページでデータ送信のエンコーディングが指定されていない場合、コード化けが発生します。
したがって、JSP コード化けの原因は上記にすぎません。理由を理解すると、JSP 化けを解決するのがはるかに簡単になります。コードを一つずつ表現してみましょう。
1. MySQL をインストールするコードを変更できない場合、多くの友人は Web サイトを構築するために仮想ホストを購入しますが、MYSQL のインストール コードを変更する権利を持っていません。次の手順が正しい限り、この手順を省略できます。コード化けの問題はまだ解決できます。
2. データベースのエンコーディングを変更します。データベースのエンコーディングが間違っている場合は、phpmyadmin で次のコマンドを実行できます: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
上記のコマンドは、テスト データベースのエンコーディングを utf8 に設定します。
3. テーブルのエンコーディングを変更します。 ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
上記のコマンドは、テーブル カテゴリのエンコードを utf8 に変更することです。
4. フィールドのエンコーディングを変更します。
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
上記のコマンドは、テスト テーブルの dd のフィールド エンコーディングを utf8 に変更します。
5. この状況が簡単に解決できる場合は、ページを確認してソース ファイルの文字セットを変更するだけです。
, //これが正しければ問題ない
6. この場合、ページの文字セットを変更することもできます。
7. データベースに接続するための JSP ステートメントで、
private String url="jdbc:mysql://localhost/"+DB_NAME+" user="+LOGIN_NAME+"&password="+LOGIN_PASSWORD+"&characterEncoding=GBK" //キーはcharacterEncodingに依存します。
8. この文字化けの場合は、ページの先頭に request.setCharacterEncoding("GBK") を追加するだけです。
注: 上記の方法に従って変更した後は、新しく挿入されたデータを確認するだけです。例: ユーザーが送信したデータが BIG5 であるが、GB2312 Web ページで正しく表示されるように上記の方法を使用したい場合、この種のテキスト コードは不可能です。変換は別のプログラムを作成することによってのみ解決できます。WEB745 .com のその他の関連記事を参照してください。
概要: まず、JSP の文字化けがデータベースに挿入された後に文字化けしているのか、それとも JSP ページが送信された直後に文字化けしているのかを判断する必要があります。JSP が前のページからデータを受信した直後に文字化けしている場合は、次のようになります。文字セットが間違っているのでしょうが、request.setCharacterEncoding が追加されていません ("GBK");
データベースに原因がある場合は、上記の 2、3、4 の方法を参照してください。
エンコードの問題である可能性がありますので、このようにデータベースに接続して確認してください。
jdbc:mysql://localhost:3306/xxxx useUnicode=true&characterEncoding=UTF-8
うまくいくかどうか確認してください