手机
当前位置:查字典教程网 >编程开发 >mysql数据库 >MySQL中文乱码问题的解决方案
MySQL中文乱码问题的解决方案
摘要:MYSQL经典问题:(ERROR1366(HY000):Incorrectstringvalue:'xD5xD4'forcolumn'nam...

MYSQL经典问题:

(ERROR 1366 (HY000): Incorrect string value:'xD5xD4' for column 'name' at row 1)

网上有好多解决中文乱码的贴, 大致都讲的是修改 %MYSQL_DIR%/my.ini default-character-set=gbk 什么的

我试过了, 不起作用. (可能是我没处理到位)

下面是我琢磨了半天,得到的结果, 不知道是否值得提倡, 但目的绝对达到了:

登陆mysql --->

进入相应数据库--->

输入命令: show variables like '%char%';

得到:

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

| 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 D:MySQLsharecharsets

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

如果出现上述情况则需要更改数据库编码: 两种方法, 第一种是一次搞定, 第二种只对当前连接有效,断开连接,恢复更改前状态

方法1: alter database 数据库名 charset utf8;

方法2: set character_set_database = utf8;

再用命令: 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 utf8

| character_set_system utf8

| character_sets_dir D:MySQLsharecharsets

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

此时编码已经一致, 但是,对数据库中的表进行插入中文字符操作, 仍然会报 : ERROR 1366 (HY000)

---> set character_set_client = gbk; 设置插入时接收的编码为GBK, 这样就可以插入中文了

此时中文字符已经可以插入, 但查询结果却还是乱码, 再更改一处即可:

---> set character_set_results = gbk; 设置输出结果的编码为GBK

注: 这样的设置只对当前连接有关, 连接断开, 这些设置恢复数据库默认设置状态,因此,如果需要,每次连接都得设置!

另外:ERROR 1366 (HY000)错误主要出现于控制台(cmd/黑窗口) 执行SQL语句插入中文时弹出,

用mysql-front 软件插入时不会报字符问题, java通过JDBC连接数据库执行executeUpdate("insert 语句") 中文也能成功插入数据且不会报错!

PHP解决乱码问题只需在连接后加入mysql_query("set names 'gbk'") 就OK!

如: $conn = mysql_connect("localhost","root","");

mysql_query("set names 'gbk'");

【MySQL中文乱码问题的解决方案】相关文章:

SQL Server的排序规则(collation)冲突和解决方案

mysql proxy问题的解决方法

Mysql中文乱码及导出sql语句和Excel的相关解决方法

mysql中为用户设置密码的多种方法

MySQL延迟关联性能优化方法

mysql中文乱码的一些解决方案

简单介绍MySQL中的事务机制

ubuntu linux下使用Qt连接MySQL数据库的方法

Mysql教程:1067错误解决方法

MySQL中的SUM函数使用教程

精品推荐
分类导航