mysql存储中文 但是读取乱码_一劳永逸的解决mysql存储和读取中文乱码的问题

本文详细介绍了MySQL数据库在创建时设置编码的重要性,以及在创建表和字段时编码的继承规则。针对可能出现的乱码问题,提出了通过ALTER命令修改数据库、表和字段编码的解决方案,并强调了在查询前设置字符集可以避免乱码。同时,提到了乱码可能源自数据库、表、字段编码与网页编码不一致的多种情况,提供了相应的解决策略。
摘要由CSDN通过智能技术生成

就是在创建数据库的时候要把数据库的碥码也设置好,而之后在创建表,项的时候就不用指定了,因为它们会从上一级继承,

CREATE DATABASE $dbname DEFAULT CHARACTER SET utf8 COLLATEutf8_general_ci

如果还有更好的方法,

就是修改你安装目录下的my.ini

找到 # default-character-set=utf8

去掉前面的注释符号 # ,这样你现在建立的数据库就可以存储中文了。

还有一个问题,有时候数据库里面显示是正常的,可是取出来的时候却是乱码,这个问题如何解决呢

只要在调用mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query));

之前调用mysql_real_query(&mysql,"set namesutf8",(UINT)strlen("set names utf8"));改变一下字符编码就可以了。

注意:这里的字符编码要与数据库中的字符编码同,如果数据库采用gdk编码,则改为set names gbk

乱码产生的原因

1.安装MYSQL时的会让你选择一种编码,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码 2.在PHPMYADMIN或mysql-front等系统创建MYSQL数据库时会让你选择一种编码,如果这种编码与你的PHP网页不一致,也有可能造成MYSQL乱码 3.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码 4.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码

所以,MYSQL乱码的原因无非就是以上几种,知道原因之后,要解决MYSQL乱码的方法也容易多了

解决办法。我们一一来表达: 1.如果安装mysql的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MYSQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题 2.修改MYSQL数据库编码,如果是MYSQL数据库编码不正确: 可以在MYSQL执行如下命令: ALTER DATABASE`test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 以上命令就是将MYSQL的test数据库的编码设为utf8 3.修改MYSQL表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8COLLATE utf8_bin 以上命令就是将一个表category的编码改为utf8 4.修改字段的编码: ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SETutf8 COLLATE utf8_bin NOT NULL 以上命令就是将MYSQL数据库test表中 dd的字段编码改为utf8

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值