猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为何mysql命令行select结果集有中文会乱码?
mysql字符集情况如下图
我直接select,结果集有中文不会乱码,
若set names utf8再select,结果集有中文就会乱码,不理解原因...
海绵宝宝撒
浏览 1753
回答 3
3回答
梵蒂冈之花
数据库字符集有三个地方需要注意:1、录入数据时的字符集2、表数据存储字符集3、客户端查询时本地字符集只有你的字符集对应上了才不会乱码,你的问题就是1使用了latin1字符集,2是utf8,这时候就是3,你要使用latin1才能看到不乱码,因为你使用了latin1的编码给到mysql,mysql按照utf8的编码存入,对mysql来说你发过来的就是乱码,我存的也是乱码,想要读出来正常的数据就要按照你最初的字符集编码去读才行补充一下:set names utf8;这个操作修改的就是第三种情况:客户端的字符集
0
0
0
蝴蝶不菲
用 utf8 的方式去读以 latin 方式存储的数据 当然会乱码
0
0
0
动漫人物
** 问题所在: 数据入库的时候存的是latin1编码,你查询的时候用UTF8编码,而latin1无法转化为utf8故显示乱码。 ** 分析原因: set names utf8等价于 SET character_set_client = utf8; //表示SQL离开客户端时的编码 SET character_set_results = utf8; //服务器返回的结果集编码 SET character_set_connection = utf8; //服务器接收后转换的字符编码 这样就规定了客户端和服务器之间通信编码的统一。 ** 结论:你在初始数据入库的时候都是Latin1编码的数据,后面执行set names utf8后,查询的数据从latin1转为utf8就会乱码
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
PHP
php如何把参数放在Http Request Heade????
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续