Webアプリケーション開発における中国語の文字化けし問題
3391 ワード
Webアプリケーションにおける中国語の文字化けし問題
Javaプログラムで中国語の文字化けし問題が発生した原因はjavaプログラムと他の記憶媒体がデータを交換する場合、両者の符号化スキームが異なることにある.一般的な中国語文字コード:
中国語の文字化けしの問題の種類:
1.JSPページ表示文字化けJSPページ表示文字化けは、ページに符号化スキームが設定されていないため、ページのpage命令のcontextType属性とpageEncoding属性、HTML METAラベルのcharset属性の両方から中国語符号化を指定すればよい.コードは次のようになります.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.sql.*"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
2.フォームの中国語提出時に文字化けJSPが発生してページパラメータを取得する場合、一般的にデフォルトの符号化方式(ISO 8859-1)を採用し、ページパラメータの符号化とページの符号化が一致しない場合、文字化けが発生する可能性が高い.文字化けしの問題がここにあると判断した場合、解決策は以下の通りである.
// tname
request.setCharacterEncoding("UTF-8");
String topic=request.getParameter("tname");
// tname
String topic=request.getParameter("tname");
topic=new String(topic.getBytes("ISO-8859-1"),"UTF-8");
response.setContentType("text/html;charset=utf-8");
3.データベース読み出しデータ表示文字化けして、プログラムがデータベースに情報を保存したり、データベースの情報を読み出したりすると、中国語文字化けしてしまいます.データベースとjspページの符号化が一致することを保証するには、utf-8符号化スキームを統一的に使用することをお勧めします.本稿ではmysqlを例に挙げます.第一歩:データベースの符号化方式を変更するには、まずテーブルの符号化方式を変更し、alter tableテーブル名default character set utf 8;カラムの符号化方式を変更し、alter tableテーブル名changeカラム名データ構造character set utf-8;ステップ2:データベース接続時
// 、 、
connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/database?user=root&password=root&userUnicode=true&characterEncoding=utf-8");