insert into t1(v1) values('cn中国');
select * from t1;

1、输入gbk,交互latin1,数据库latin1
insert,客户端把gbk的输入当成latin1来解释,传给服务,服务不需要转码,把gbk当成latin1存入数据库,显示乱码。
select,服务不转码,返回给客户端,客户端latin1当成gbk解释,显示正确。
2、输入gbk,交互latin1,数据库gbk
insert 报错:ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xB9\xFA' for column 'v1' at row 1
原因是:客户端把gbk的输入当成latin1来解释,传给服务,服务转码,把latin1转化为gbk,出错。
3、输入gbk,交互latin1,数据库utf8
和1一样,这是因为utf8英文字符一个字节,多字节字符三个字节。
4、输入gbk,交互gbk,数据库latin1
insert 报错:ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xB9\xFA' for column 'v1' at row 1
原因是:客户端把gbk的输入当成gbk来解释,传给服务,服务把gbk转化为latin1,转化失败。
5、输入gbk,交互gbk,数据库gbk
insert,客户端把gbk的输入当成gbk来解释,传给服务,服务不需要转码,直接存入数据库,存入数据库正常。
select,服务不转码,返回给客户端,客户端gbk当成gbk解释,显示正确。
6、输入gbk,交互gbk,数据库utf8
insert,客户端把gbk的输入当成gbk来解释,传给服务,服务把gbk转成utf8,存入数据库,存入数据库正常。
select,服务把utf8转成gbk,返回给客户端,客户端gbk当成gbk解释,显示正确。
7、输入gbk,交互utf8,数据库latin1
insert 报错:ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xB9\xFA' for column 'v1' at row 1
原因是:客户端把gbk的输入当成utf8来解释,解释错误。
8、输入gbk,交互utf8,数据库gbk
同7
9、输入gbk,交互utf8,数据库utf8
同7

考虑下面的情况,输入gbk,交互gbk,数据库gbk,插入一条记录,查询回来正常。现在把交互改成utf8,会出现什么问题?
mysql> select * from t1;
+--------+
| v1 |
+--------+
| cn中国 |
+--------+
1 row in set (0.00 sec)

mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from t1;
+----------+
| v1 |
+----------+
| cn涓浗 |
+----------+
1 row in set (0.00 sec)

这是因为把utf8的中国,当成gbk解释,就是显示涓浗,也就是说,他们对应的Id是一样的。反过来,也是一样,把gbk的涓浗当成utf8解释,就是中国,如下:
mysql> insert into t1(v1) values('cn涓浗');
Query OK, 1 row affected (0.08 sec)

mysql> select * from t1;
+----------+
| v1 |
+----------+
| cn涓浗 |
| cn涓浗 |
+----------+
2 rows in set (0.00 sec)

mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from t1;
+--------+
| v1 |
+--------+
| cn中国 |
| cn中国 |
+--------+
2 rows in set (0.00 sec)

mysql 编码测试的更多相关文章

  1. Spring_Four -- 团队项目设计完善&编码测试

    团队项目设计完善&编码测试 1.文档<软件设计方案说明书>github地址:https://github.com/gzyt/SRS 2.项目集成开发环境 数据库:Mysql 5.0 ...

  2. 《F4+2—团队项目设计完善&编码测试》

    1:根据OOD详细设计工作要点,修改完善团队项目系统设计说明书和详细设计说明       a.软件系统设计说明书的完善 将测试启动准则,测试结束准则,测试暂停/中止标准加到了测试计划中.将把在测试中会 ...

  3. 【他山之石】mysql编码问题总结

    有些问题可能比较基础,但是没有经过系统学习还是可能会出错,记录下. 这次是mysql的编码问题. 背景是部署新的测试环境,给了一台服务器还有在另一个环境下的mysql,配置过程中发现mysql编码有问 ...

  4. paip.提升性能---mysql 性能 测试以及 参数调整.txt

    paip.提升性能---mysql 性能 测试以及 参数调整.txt 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://b ...

  5. MySQL Router 测试使用 转

    MySQL Router 测试使用 . 特性 MySQL Router 并没有包括一些特别新的特性, 总体上看中规中矩, 不过 first-available 和插件两个特性挺有意思, 后续会进行讲解 ...

  6. mysql编码的那点事

    Mysql编码问题  在php页面可以向mysql插入英文字符,但就是不能插入中文字符,在cmd客户端也可从插入,这是困扰我两天的问题. 在网上找了很多资料,最终确定了是字符编码这个地方出现了问题,首 ...

  7. Linux(Ubuntu)使用日记------Mysql编码(utf-8)的设置

    Mysq版本:5.7.21 操作系统:Linux(Ubuntu) 整个操作的基本思路如下(包括问题的解决思路,想要直接解决问题的可以先看最后的命令总结) 检查mysql编码 找到Mysql的配置文件 ...

  8. 使用mysqlslap进行MySQL压力测试

    使用mysqlslap进行MySQL压力测试发表于236 天前 ? MySQL ? 暂无评论 MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来 ...

  9. mysql 通过测试'for update',深入了解行锁、表锁、索引

    mysql 通过测试'for update',深入了解行锁.表锁.索引 条件 FOR UPDATE 仅适用于InnoDB存储引擎,且必须在事务区块(BEGIN/COMMIT)中才能生效. mysql默 ...

随机推荐

  1. PHP开发异步高性能的MySQL代理服务器

    ySQL数据库对每个客户端连接都会分配一个线程,所以连接非常宝贵.开发一个异步的MySQL代理服务器,PHP应用服务器可以长连接到这台Server,既减轻MYSQL的连接压力,又使PHP保持长连接减少 ...

  2. 20145227《Java程序设计》第3次实验报告

    20145227<Java程序设计>第3次实验报告 实验步骤与内容 一.实验内容 XP基础 XP核心实践 相关工具 二.实验过程 (一)敏捷开发与XP 1.XP是以开发符合客户需要的软件为 ...

  3. 原来样式改变不了(input type="file")

    label { background-color: #979fa8; color: #fff; display: inline-block; padding: .8rem 4rem; cursor: ...

  4. List null

    List<String> list = new ArrayList<String>(); 不给list add,list也不为null 所以list判断有没有数据,只能用判断l ...

  5. ds.Merge 与 ds.Tables[0].Merge 的用法

    DataSet ds = new DataSet(); SqlConnection conn = new SqlConnection(ConnectionStr);            SqlCom ...

  6. Wormholes 分类: POJ 2015-07-14 20:21 21人阅读 评论(0) 收藏

    Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 35235   Accepted: 12861 Descr ...

  7. Rigidbody SweepTest测试

    和Physics的投射差不多,SweepTest可以直接投射当前碰撞 但是比较遗憾的是它对MeshCollider的支持不是很好,需要勾选Convex 投射和Physics一样,只要加了碰撞器,不管勾 ...

  8. POJ Sky Code 莫比乌斯反演

    N. Sky Code Time Limit: 1000ms Case Time Limit: 1000ms Memory Limit: 65536KB   64-bit integer IO for ...

  9. Radar之字节流加载图片

    获取GUITexture GameObject _obj = GameObject.Find("Tex1"); GUITexture _tex = _obj.GetComponen ...

  10. 最小化安装centos的init初始化脚本

    #!/bin/bash #this script is appropriate .x(这脚本适合最小化安装6.x版本的系统) #you have already install the os read ...