您当前的位置: 首页 > 数据库教程 > MySQL教程 > MySQL中文乱码问题的解决方案

MySQL中文乱码问题的解决方案

作者:不详 来源:网络 发布时间: 2014-07-17 10:15 点击:
MYSQL经典问题: (ERROR 1366 (HY000): Incorrect string value:'xD5xD4' for column 'name' at row 1) 网上有好多解决中文乱码的贴, 大致都讲的是修改 %MYSQL_DIR%/my.ini default-character-set=gbk 什么的 我试过了, 不起作用. (可能是我没处理到位) 下面是我琢磨了

MySQL中文乱码问题的解决方案

  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_serverutf8

  character_set_system utf8

  character_sets_dirD: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_serverutf8

  character_set_system utf8

  character_sets_dirD: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中文乱码问题的解决方案"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4