MySQL中文出现乱码怎么解决
创始人
2024-12-20 11:02:41
0次


 
MYSQL经典问题: 
  (ERROR 1366 (HY000): Incorrect string value:'\xD5\xD4' for column 'name' at row 1)
网上有好多解决中文乱码的贴, 大致都讲的是修改 %MYSQL_DIR%/my.ini    default-character-set=gbk 什么的
我试过了, 不起作用. (可能是我没处理到位)
下面是我琢磨了半天,得到的结果, 不知道是否值得提倡, 但目的绝对达到了:
登陆mysql --->
进入相应---> 
输入命令: show variables like '%char%';
得到:   www.2cto.com  
+--------------------------+--------------------------+
| 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:\MySQL\share\charsets\ 
+--------------------------+--------------------------+
 
如果出现上述情况则需要更改数据库编码: 两种方法, 第一种是一次搞定, 第二种只对当前连接有效,断开连接,恢复更改前状态
 方法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   www.2cto.com  
| character_set_database      utf8 
| character_set_filesystem     binary 
| character_set_results       utf8 
| character_set_server      utf8 
| character_set_system       utf8
| character_sets_dir       D:\MySQL\share\charsets\ 
+--------------------------+--------------------------+
 
此时编码已经一致, 但是,对数据库中的表进行插入中文字符操作, 仍然会报 : ERROR 1366 (HY000)
---> set character_set_client = gbk;  设置插入时接收的编码为GBK, 这样就可以插入中文了
此时中文字符已经可以插入, 但查询结果却还是乱码, 再更改一处即可:
---> set character_set_results = gbk; 设置输出结果的编码为GBK
注: 这样的设置只对当前连接有关, 连接断开, 这些设置恢复数据库默认设置状态,因此,如果需要,每次连接都得设置!
另外:ERROR 1366 (HY000)错误主要出现于控制台(cmd/黑窗口) 执行SQL语句插入中文时弹出,
用-front 软件插入时不会报字符问题, java通过JDBC连接数据库执行executeUpdate("insert 语句") 中文也能成功插入数据且不会报错!
 
PHP解决乱码问题只需在连接后加入mysql_query("set names 'gbk'") 就OK!
如: $conn = mysql_connect("localhost","root",""); 
  mysql_query("set names 'gbk'");

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...