说说mysql的那些事

在学习过程中,有时候会碰到自己弄的mysql数据库中的数据出现中文乱码,英文对应latin1,utf8,gbk这三种编码貌似没有问题,而中文的编码对此则不一样了。

为考证其问题所在,特地请教了百度老师,给出了两个页面。

http://blog.youkuaiyun.com/red4711/article/details/6007248

http://xumingrencai.iteye.com/blog/1516789

里面讲了许多,我也在控制台自己操作了一番。

首先记一下几个简单的命令:

查看mysql当前的编码:mysql> SHOW VARIABLES LIKE 'character_set%';
(注意前面一定是大写,小写试过说是Empty set,估计是因为show也是mysql一个命令,当成是show variables这个表了)

创建表:create table bian(id int, name varchar(10));

设置命令:set names '      ' ;   空处填latin1,utf8,gbk之一。

或者单独设置各个character的值,  set character_set_results='gbk';

接下来,我尝试了不同的编码进行创建、插入和查询表,其中包括改动编码后的查询等。

结果发现,其实只要保持一种不变,而操作过程中不要改变编码方式,则不会出现乱码。

如:我用latin1的编码,创建和插入了有中文字符的表,此时查询没有问题。如果此时改变了编码,那么查询会出现乱码,插入会出现报错。

将编码改变回来就可以了。

至于第二篇里说到是jsp,html中的编码问题,还没有仔细研究,姑且记住人家的结论:

经过进一步实验,发现无论是 set names 'gbk'、
set names 'utf8' 还是
set names 'latin1'
都能正常地插入和查询出中文,最最关键的其实不在于数据库
而在于 jsp、html 页面的编码是否为 GBK !!!这是最终的结论!!

其实我也是这么想的。前面证明是正确的,而后面网页方面的,我就没有试过了。有机会就尝试一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值