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_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'");

时间: 2024-08-31 05:11:03

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

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

  如果你也遇到了这个问题,咱先不谈原因,在PC自带的cmd中(或者是mysql安装版安装后的Command Line客户端,又或者是工作用的SecureCRT)试试效果.进入mysql环境,从头开始操作.假设你的客户端编码是gbk或者utf8(这么说太不严谨了,怎么能假设呢,但是一般来说假如安装后没动过,cmd是gbk编码,mysql安装后的Command Line客户端没装不记得,CRT看看Session Options里面的编码设置,一般也会设置成utf8),执行一些语句: 1. 设置编码

mysql中文乱码问题???

问题描述 mysql中文乱码问题??? Connection id: 3 Current database: hibernatedb Current user: root@localhost SSL: Not in use Using delimiter: ; Server version: 5.6.17 MySQL Community Server (GPL) Protocol version: 10 Connection: localhost via TCP/IP Server charac

关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)_Mysql

最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅. 首先: 用show variables like "%colla%":show varables like "%char%":这两条命令查看数据库与服务端的字符集设置 如果查看出来都是gbk2312,或 gbk,那么就只能支持简体中文,繁体和一些特殊符号是不能插入的,我们只有修改字符集为UTF-8, 修改方法如下: 用记事本或

jquery-php jQuery MySQL中文乱码

问题描述 php jQuery MySQL中文乱码 网页的字符集都是utf-8,数据库也是utf-8,传递中文后为何是乱码 解决方案 解决方案二: 你的编程语言是什么?编程语言中的语句有的是和字符集相关的. 解决方案三: 实在不行就编码一下,,在传过去,,, 解决方案四: http://blog.csdn.net/xionglangs/article/details/50195449,看看它能不能解决. 解决方案五: 数据库是utf-8,表是吗?字段是吗? 解决方案六: 你是不是用的mysqli

Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]_Mysql

一.导出数据. 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内的数据迁移到另一台机器上,于是使用Workbench中自带的import/export功能,其实就是调用mysqldump.不幸的是,出现了版本不一致的错误. 错误没治了,最终找到解决方案,可以指定mysql的mysqldump,路径为:/usr/local/mysql/bin/mysqldump,

java-求教JAVA应用传入mysql中文乱码

问题描述 求教JAVA应用传入mysql中文乱码 JAVA的应用程序用JDBC连接mysql 类似汉字的查询都成功不了,插入汉字也是???乱码 从数据库返回的汉字正常. 数据库和MyEclipse都是GBK编码 ?useUnicode=true&characterEncoding=UTF-8 这个试过了 没用 查询代码如下 java.sql.Statement stmt = connection.createStatement(); String string="哦"; Res

MySQL中文乱码怎么解决啊???????

问题描述 MySQL中文乱码怎么解决啊??????? 解决方案 解决方案二:配置字符集时选择utf8解决方案三:my.ini文件中改default-character-set=utf-8解决方案四:使用mySql-front工具吧,察看数据库时,可以设置使用的编码方式(指定gb2312),就Ok了.解决方案五:配置字符集时选择UTF-8解决方案六:先配置数据库的字符集是gb2312,如果你是web开发,注意检查写入数据库的时候中文是否已经乱码了...解决方案七:setCharacterEncod

python sqlobject(mysql)中文乱码解决方法_python

UnicodeEncodeError: 'latin-1' codec can't encode characters in position: 找了一天终于搞明白了,默认情况下,mysql连接的编码是latin-1,你需要指定使用什么编码方式: connectionForURI(mysql://user:password@localhost:3306/eflow?use_unicode=1&charset=utf8) Python mysql 中文乱码 的解决方法,有需要的朋友不妨看看. 先来

PHP+MYSQL中文乱码问题

  这篇文章主要汇总介绍了几种解决PHP+MYSQL中文乱码问题的方法,十分的实用,有需要的小伙伴可以参考下. 从MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行. 解决这个问题其实很简单. 1.在建表的时候设置编码类型为gb2312_chinese_ci. 2.在PHP页面的数据库连接语句加一行mysql_query("SET NAMES 'gb2312'",$link); 例如 ? 1 2 3 4 5 6 7 8 9 10 $db_ho