处理mysql编码问题
专业领域包括成都做网站、成都网站制作、成都外贸网站建设、商城网站定制开发、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,成都创新互联公司的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。我们经常会遇到一些向MySQL数据库中插入中文,但是select出来的时候,却是乱码。
一、查看库、表字符集命令
1.查看数据库支持的所有字符集
Show character set (show char set)
2.查看当前状态,里面当然包括字符集的设置
Status(/s)
3.查看系统字符集设置,包括所有的字符集设置
Show variables like ‘%char%’;
4.查看数据表中字符集设置
Show full columns from tablename ;
也可以查看表结构
Show create table tablename\G;
5.查看数据库编码(数据库结构)
Show create database dbname;//创建数据库指定的字符集
二、创建库表列时要指定字符集(要统一)
1、服务器级
在安装MySQL时可以设置服务器的默认编码格式,也可对my.ini做修改,修改[mysqld]里面的character_set_server=utf8,则可设置character_set_server的值。
2.数据库级
Create database dbname default character set utf8;
注意,如果不指定默认的字符集,则系统会根据character_set_database的值进行设置
3.表级
Create table dbname.tbname(id varchar(20) not null, name vharchar(20))engine=innoDB default charset=utf8;
注:定义表的默认字符集为utf8,即使character_set_database为gbk,但是表的列都为utf8。如果没有定义表的默认字符集,则他会按照character_set_database的值来设置
4.列级
Create table db1.tb2(id varchar(20) not null, name varchar(20) character set utf8);
注:如查没有指定列字符集、就使用表字符集、如查指定了就使用指定的。
图中:show create table db1.tb2//是查看表结构
三、修改字符集
1.修改character_set_connection、character_set_client、character_set_results三值
对于一个连接来说、可以用
Set names utf8来使用上面三个值改成utf8;
Set name ‘charset_name’;相当于
Set character_set_client = charset_name;
SET character_set_results = charset_name;
SET character_set_connection = charset_name;
2.修改character_set_database字段(也就是改数据库字符集)
Alter database db_name default character set charset_name;
3.修改character_set_server字段
最简单的方法是直接改my.ini配置文件里面[mysqld]的字段,增加character-set-server=gbk,然后重启mysqld,则可改为你想要的字符集。
4.修改表的字符集
Alter table tbname default character set charsetname;
Alter table tb1 default character set utf8
5.修改列的字符集
Alter table tbname modify age varchar(30) character set utf8;
总结:
1、建库、建表、建字段设置统一编码。
2、PHP作为mysqle服务器客户端、连接编码set names utf8/gbk;
3、设置php返回给浏览器数据的编码。(Content-Type,header(),)
header("Content-type:text/html;charset=utf-8");
4、Php文件本身保存的编码(文件编码、通过文本编辑器设置)
5、安装mysql时设置好编码。(装好后可修改my.ini)
微信扫一扫 、关注公众号
不定时分享资料视频
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。