mysql 中文乱码
http://www.forasp.cn/ 2015/3/18 0:01:59 点击:不统计
原载于:原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n
在写一个项目中遇到了mysql 乱码的问题解决步骤如下,特别迅速的解决了mysql中文乱码,一般是编码格式不对影响了mysql存储乱码。
我们以我们的目的编码为utf8 为例
1. 看服务器mysql的编码情况,命令
mysql>show variables like 'character%';
看到服务器返回
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
全部是 latin1编码,我们要统一为utf8
修改方式:
编辑my.cnf 在 [mysqld][client]下添加,两个都添加
default-character-set=utf8
然后我们重启mysql 看编码
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
在 默认的datebase中仍然有latin1编码,再次运行命令
mysql>set character_set_database=utf8;
2,我们然后看我们对应数据库编码
mysql > use mysql乱码数据库名;status;
Connection id: 42
Current database: mysql乱码数据库名
Current user: user@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.73 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: latin1==========注意这行,我们的数据库也是latin1编码,需要更改
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 6 min 22 sec
更改我们数据库编码
mysql> ALTER DATABASE ` mysql乱码数据库名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
再次运行status 编码看到变化为utf8;
3. 看mysql连接文件是否是utf8 连接时 set names utf8 ;
这样就没有mysql中文乱码
<网f站o学a习s制p作.cn>
·上一篇:网站制作学习网 ·下一篇:mysql group by 批量获取最后的数据 >>