MySQL 中文乱码的原因
MySQL 出现中文乱码通常由以下设置不一致导致:
- Server 本身设定问题:例如字符集仍停留在 latin1。
- Table 语系设定问题:包含 character_set 与 collation。
- 客户端程式连线语系设定问题:例如 PHP 或 Java 的驱动配置。
强烈建议使用 utf8,以兼容更多字符。
避免创建及表出现中文乱码和查看编码方法
1. 创建数据库时指定编码
CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
2. 建表时指定编码
CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
确保建库和建表时使用相同的编码格式。若已存在库和表,可通过以下方式查询和调整。
3. 查看默认编码格式
show variables like "%char%";
输出示例:
| Variable_name | Value |
|---|---|
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_server | utf8 |
注:前两个变量决定连接时的编码,可使用 SET NAMES utf8 或 SET NAMES gbk 设置默认编码格式。
执行 等同于同时设定:

