この記事は主にデータベースMySQLの中国語文字化けの解決策の概要を紹介します。データベースは中国語の文字化けを保存するため、必要な場合はいくつかの方法を参照してください。
MySQL 中国語文字化けの解決策前書き:
MySQL は、私たちのプロジェクトで非常に一般的に使用されるデータ データベースです。しかし、中国語の文字をデータベースに保存する必要があるため、データベースの文字化けが頻繁に発生します。データベースの中国語文字化け問題を完全に解決する方法を紹介します。
1. 中国語の文字化け1.1. 中国語の文字化け
create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 select * from user;
1.2. テーブル文字のコーディング
insert into user value("哈哈");
文字セット
が latin1 であることがわかります。したがって、テーブルを作成するときに、テーブルの文字セットを指定する必要があります:mysql> show create table user \G;
*************************** 1. row ***************************
Table: user
Create Table: CREATE TABLE `user` (
`name` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
でアクセスできるようになり、このテーブルを挿入してアクセスできるようになりました。
1.3、データベースとオペレーティングシステムのコーディング
サーバー側では中国語が正常に表示されますが、クライアント側では文字化けが表示される場合があります。サーバーがUTF8だからです。
ここでは、character_sert_database とcharacter_set_server の文字セットが両方とも latin1 であることがわかります。次に、
mysql データベースでは、server、database、table の文字セットがすべてデフォルトで latin1 であることがわかります。 mysqlの文字化け状態を解決します。
2、mysql設定
変数範囲2.1、
session create table user(name varchar(11)) default charset=utf8;
rreee
文字セットがutf8に変更されていることがわかります。しかし、ここで問題があります。つまり、コマンド ウィンドウを再度開いてデータ エンコーディングを確認すると、次の画面が表示されます:
2.2、グローバル スコープ
show variables like '%char%';
セッション全体で
mysql 文字セットを表示すると、次のことがわかります。それらはすべてutf8です。すべてがうまくいくと思ったら、それは完全に間違っています。
2.3. データのグローバル スコープを設定する データベースが再起動すると、グローバル スコープの設定値が再び latin1 になることがわかります。set character_set_server=utf8; set character_set_database=utf8; show variables like '%char%';
恐れることはありません。以下に究極のトリックをお教えします:
mysql
設定ファイル/etc/my.cnfを変更します。
set global character_set_database=utf8; set global character_set_server=utf8; show variables like '%char%';
これらのパラメータ設定の場所に注意してください。そうしないと、mysql サービスが開始されない可能性があります:
OK。ここで、mysql サービスを再起動すると、その文字セットが utf8 であることがわかります。
また、テーブルを作成するときに文字エンコーディングを指定する必要はなく、デフォルトは utf8;
service mysqld restart mysql -uroot -pyourpassword show variables like '%char%';
3 、概要
インターネット上の多くの回答では、MySQL の文字エンコーディングをセッションレベルで直接設定していることがわかりました。これは永続的な解決策ではなく、一時的な解決策です。この問題を根本から解決する必要があります。それは、mysqlのデフォルト設定ファイルを修正し、文字セットを漢字が使用できるUTF8に変更することです。
以上がデータベースMySQLの中国語文字化け解決方法まとめを詳しく解説(写真と文章)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。