mysql中国語の文字化けし問題
1、データベースを作成した後、データベースを使用して、まずレコードを挿入し、次に表示します.
中国語挿入を見つけて表示しない
2、データベースの符号化方式を見て、latin 1
表の符号化方式を見て、latin 1であることを発見します
3、データベースとテーブルの符号化方式をutf 8に変更する
4、一度に修正してから中国語を使うことができるように、プロファイル/etc/mysql/myを直接修正することもできる.cnf
データベースを再起動します
/etc/init.d/mysql restart
clientとdatabaseがutf 8になったデータベース文字セットを表示します.
5、すべてのデータを削除して再挿入する
問題解決!
mysql> insert into CmsUser(username,password,area) value ("admin2","123456"," ");
Query OK, 1 row affected, 1 warning (0.05 sec)
mysql> select * from CmsUser;
+--------+----------+----------+------+----------+
| userid | username | password | area | deptrole |
+--------+----------+----------+------+----------+
| 1 | mzuser | NULL | NULL | NULL |
| 2 | mzuser | 123456 | ?? | ?? |
| 3 | admin | 123456 | ?? | NULL |
| 4 | admin1 | 123456 | ?? | NULL |
| 5 | admin2 | 123456 | ?? | NULL |
+--------+----------+----------+------+----------+
5 rows in set (0.00 sec)
中国語挿入を見つけて表示しない
2、データベースの符号化方式を見て、latin 1
mysql> show create database example;
+----------+------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------+
| example | CREATE DATABASE `example` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)
表の符号化方式を見て、latin 1であることを発見します
mysql> show create table CmsUser;
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CmsUser | CREATE TABLE `CmsUser` (
`userid` int(8) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(20) DEFAULT NULL,
`area` varchar(10) DEFAULT NULL,
`deptrole` varchar(10) DEFAULT NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 |
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
3、データベースとテーブルの符号化方式をutf 8に変更する
mysql> alter database example character set utf8;
Query OK, 5 rows affected (0.17 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> alter table CmsUser character set utf8;
Query OK, 5 rows affected (0.17 sec)
Records: 5 Duplicates: 0 Warnings: 0
alter table CmsUser modify column area varchar(10) character set utf8;
4、一度に修正してから中国語を使うことができるように、プロファイル/etc/mysql/myを直接修正することもできる.cnf
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set=utf8 //
[mysqld]
#default-character-set=utf8 // ,
character-set-server=utf8 //
データベースを再起動します
/etc/init.d/mysql restart
clientとdatabaseがutf 8になったデータベース文字セットを表示します.
mysql> show variables like "%char%"
-> ;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
5、すべてのデータを削除して再挿入する
mysql> insert into CmsUser(username,password,area) value ("admin","123456"," ");
Query OK, 1 row affected (0.03 sec)
mysql> select * from CmsUser;
+--------+----------+----------+--------+----------+
| userid | username | password | area | deptrole |
+--------+----------+----------+--------+----------+
| 1 | admin | 123456 | | NULL |
+--------+----------+----------+--------+----------+
1 row in set (0.00 sec)
問題解決!