{channel.title!channel.name} - 楚淮公司周东林

mysql插入中文数据乱码

今天用甲方提供的服务器自带的 mysql 运行程序插入的中文数据乱码,使用Navicat for MySQL 插入中文数据正常。


在项目中使用MySQL数据库,在做插入操作时,写入英文字符没有问题,但是插入中文的时候数据库中的数据就????乱码。


网上的资料显示,连接mysql库出现中文乱码的问题原因有如下几个:
            1.mysql本身设定问题,例如还停留在latin1版本;
            2.table的语系设定问题(包含character与collation);
            3.客户端程式(例如php,java)的连线语系设定问题;

​查看数据库字符集:

 

>show variables like 'character%';

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client |utf8 |

| character_set_connection | utf8 |

| character_set_database |utf8|

| character_set_filesystem | binary |

| character_set_results |latin1 |

| character_set_server | latin1 |

| character_set_system |utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8(先以utf8为例);
其中,

character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
          现将这几种编码方式全部改为”utf-8”:

​解决方法:

​# vi /etc/my.cnf

修改配置文件

[mysqld]下面添加

character_set_server=utf8
character_set_client=utf8

 

 

 

 


浏览.发表于:2018-03-05 14:40:16