Mysql之中文数据问题
来源:互联网 发布:看免费漫画软件 编辑:程序博客网 时间:2024/05/08 12:10
中文数据问题
中文数据问题本质是字符集问题。
计算机只识别二进制;人类更多是识别符号;需要有个二进制与字符的对应关系(字符集)
客户端向服务器插入中文数据:
原因:\xD5\xC5\xD4\xBD代表的是“张越”在当前编码(字符集)下对应的二进制编码转换成的
十六进制:两个汉字=>四个字节( GBK)
报错:服务器没有识别对应的四个字节:服务器认为数据是utf8,一个汉字有三个字节:读取三个字节转换汉字(失败),剩余的再读三个字节发现不够,最终失败。
所有的数据库服务器认为(表现)的一些特性都是通过服务器端的变量来保存:系统先读取自己的变量,看看应该怎样表现。
//查看服务器到底识别哪些字符集
Show character set;
基本上:服务器是万能的,什么字符集都支持;
//既然服务器识别这么多:总有一种是服务器默认的跟客户端打交道的字符集
Show variables Iike‘character_set%’;查看服务器默认的对外处理的字符集
问题根源:客户端数据只能是GBK,而服务器认为是UTF8:矛盾产生
解决方案:改变服务器,默认的接收字符集为GBK;
Set character_set_client=gbk;
插入中文的效果
查看数据效果:依然是乱码
原因:数据来源是服务器,解析数据是客户端(客户端只识别GBK:只会两个字节一个汉字)
但是服务器给的数据却是utf8,三个字节一个汉字:乱码
解决方案:修改服务器给客户端的数据字符集为gbk
Set character_set_results=GBK;
查看数据效果
Set 变量=值;修改只是会话级别(当前客户端,当次连接有效:关闭失效)
所以设置服务器对客户端的字符集的认识:可以使用快捷方式:set names 字符集
set names gbk;====> character_set_client,character_set_results,character_set_connection
Connection连接层:是字符集转变的中间者,如果统一了效率更高,不统一也没问题。
0 0
- Mysql之中文数据问题
- MYSQL数据中文乱码问题
- 中文数据写入MySql乱码问题
- 如何解决MYSQL数据中文乱码问题
- 如何解决MYSQL数据中文乱码问题
- cmd中MySQL中文数据乱码问题
- MySql插入数据,中文乱码问题
- mysql挿入数据中文乱码问题
- mysql插入数据产生中文乱码问题
- mysql中数据中文乱码问题
- mysql导出数据中文乱码问题
- MySQL数据库插入中文数据乱码问题
- mysql数据库插入数据中文乱码问题
- Mysql中文查不到数据的问题
- MySQL插入数据时中文乱码问题
- Java取Mysql数据中文乱码问题
- JSP之 MySQL 插入数据时,中文乱码问题的解决
- Mysql数据库中文乱码问题之解决方法
- HTML 设置快捷键 accesskey属性
- Activity使用Dialog样式 禁用点击空白处自动关闭
- GB2312和ASCII码点阵字库HZK, ASC整理
- cpufreq之sysfs接口
- HDU 1503 Advanced Fruits (LCS)
- Mysql之中文数据问题
- js 根据浏览器高度设置页面高度
- HTML5学习(三)—5
- 求网关地址:
- Leetcode 149. Max Points on a Line (Hard) (cpp)
- HS实习收获
- maven学习资源
- 欢迎使用CSDN-markdown编辑器
- localtime_r优化方案