まとめ--mysql中国語の文字化けしを解決する
5069 ワード
まず、mysqlの中国語の文字化けしの原因を分析します.
1、テーブルの作成時にlatinコードを使用した
2、接続データベースの符号化が指定されていない
3、書き込み時に文字化けしてしまった(この場合は自分でソースデータをチェックする必要がある)
解決方法のまとめ:
1.ライブラリの作成時にエンコーディングを指定します.
2.ライブラリのエンコーディングを変更するには:
3.表の符号化を変更する:
4.フィールドのエンコーディングを変更するには:
MYSQLデータベースtablenameテーブルのddのフィールドコードをutf 8に変更
診断プロセス:
1、SHOW CREATE TABLE testtable; テーブル作成文を使用して現在のテーブルのエンコーディングを表示ラテンlatinエンコーディングの場合は、
テーブルのエンコーディングの変更
2、再度show create tableコマンドを使用して表示し、表コード
現在のカラムのエンコーディングも正しくないことが判明した場合は、
よりdd列の符号化を行う
3、正しい場合は、コードの接続方法が正しいかどうかを確認します.
ここではjava側の接続ですが、ここでは接続の符号化utf-8を指定しています.
ここまで来ればいいはず
4、システムのデフォルトコードを修正する
参考記事:
1、http://www.2cto.com/database/201307/227538.html
2、http://zhidao.baidu.com/link?url=WtACC0jMIsOAk6eX6kJk8qjQhga28VgsYpNPY4Oc9sWH5fgU2OQm1An-IGiV4yZ-PE80VJ5ZB-YxrAVW3Jo8ua
1、テーブルの作成時にlatinコードを使用した
2、接続データベースの符号化が指定されていない
3、書き込み時に文字化けしてしまった(この場合は自分でソースデータをチェックする必要がある)
解決方法のまとめ:
1.ライブラリの作成時にエンコーディングを指定します.
create database testdb default charset utf8
2.ライブラリのエンコーディングを変更するには:
ALTER DATABASE `testtable` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
3.表の符号化を変更する:
ALTER TABLE `testtable` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
4.フィールドのエンコーディングを変更するには:
ALTER TABLE `tablename` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
MYSQLデータベースtablenameテーブルのddのフィールドコードをutf 8に変更
診断プロセス:
1、SHOW CREATE TABLE testtable; テーブル作成文を使用して現在のテーブルのエンコーディングを表示ラテンlatinエンコーディングの場合は、
ALTER DATABASE `testtable` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
テーブルのエンコーディングの変更
2、再度show create tableコマンドを使用して表示し、表コード
現在のカラムのエンコーディングも正しくないことが判明した場合は、
ALTER TABLE `tablename` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
よりdd列の符号化を行う
3、正しい場合は、コードの接続方法が正しいかどうかを確認します.
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
ここではjava側の接続ですが、ここでは接続の符号化utf-8を指定しています.
ここまで来ればいいはず
4、システムのデフォルトコードを修正する
mysql> SHOW VARIABLES LIKE 'character%';
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
参考記事:
1、http://www.2cto.com/database/201307/227538.html
2、http://zhidao.baidu.com/link?url=WtACC0jMIsOAk6eX6kJk8qjQhga28VgsYpNPY4Oc9sWH5fgU2OQm1An-IGiV4yZ-PE80VJ5ZB-YxrAVW3Jo8ua