1、字符编码概念

字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

在计算机中所看到的任何内容都是字符构成的。

字符编码(character code)是计算机针对各种符号,在计算机中的一种二进制存储代号。

字符集概念

字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。

常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。中文文字数目大,而且还分为简体中文和繁体中文两种不同书写规则的文字,而计算机最初是按英语单字节字符设计的,因此,对中文字符进行编码,是中文信息交流的技术基础。

2、设置客户端所有字符集

如果直接通过cmd下的mysql.exe进行中文数据插入,那么可能出错

范例:直接通过cmd进行中文数据插入

出错原因:

1、 用户是通过mysql.exe来操作mysqld.exe

2、 真正的SQL执行是Mysqld.exe来执行

3、 mysql.exe将数据传入mysqld.exe的时候,没有告知其对应的符号规则(字符集),而mysqld也没有能力自己判断,就会使用自己默认的(字符集)

解决方案:mysql.exe客户端在进行数据操作之前将自己所使用的字符集告诉mysqld

Cmd下的mysql.exe默认都只有一个字符集:GBK

Mysql.exe如果告知Mysqld.exe对应的字符集类型为gbk?

快捷方式:set names 字符集

范例:将Mysqld.exe对应的字符集设置为gbk

重新进行数据插入:中文(GBK)

深层原理:客户端,服务端,连接层

Mysql.exe与Mysqld.exe之间的处理关系一共分为三层

客户端传入数据给服务端:client:character_set_client

服务端返回数据给客户端:server:character_set_results

客户端与服务端之间的连接:connection:character_set_connection

说明:

Set names 字符集的本质:就是一次性打通三层关系的字符集,变得一致。

在系统中有三个变量来记录着这三个关系对应的字符集:show variables like ‘character_set_%’;

范例:查看character字符集

范例:查看一个新的客户端的对应的字符集关系

(1) 修改服务器端变量的值

基本语法:Set 变量名 = 值;

范例:修改服务端的编码

修改过后,重新进行数据插入和查看的结果:插入OK,但是查看乱码,结果如下:

修改结果字符集为GBK,结果如下:

Connection只是为了更方便客户端与服务端进行字符集转换而设。

Set names gbk;

Set character_set_client = gbk; //为了让服务器识别客户端传来的数据

Set character_set_connection = gbk;//更好的帮助客户端与服务端之间进行字符集转换

Set character_set_results = gbk;//为了告诉客户端服务端所有的返回的数据字符集

05、MySQL—字符集的更多相关文章

  1. MySQL字符集转换引发插入乱码问题

    根据http://www.cnblogs.com/cchust/p/4601536.html进行验证测试 问题背景 在mysql上面执行一条普通的insert语句,结果报错: Incorrect st ...

  2. 略懂 MySQL字符集

    本文虽说旨在明白.但若略懂亦可.毕竟诸葛孔明如是     只有基于字符的值才有所谓字符集的概念     某些字符集可能需要更多CPU.消费更多的内存和磁盘空间.甚至影响索引使用     这还不包括令人 ...

  3. mysql 字符集配置

    查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -ina ...

  4. [mysql]深入Mysql字符集设置[转载]

    http://www.laruence.com/2008/01/05/12.html 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等: • 给定一系列字符, ...

  5. 深入Mysql字符集设置

    作者: Laruence(   ) 本文地址: http://www.laruence.com/2008/01/05/12.html 转载请注明出处 根据Chaos  Wang的PPT整理而成, 在此 ...

  6. MySQL字符集与排序规则总结

      字符集与排序规则概念 在数据库当中都有字符集和排序规则的概念, 很多开发人员甚至包括有些DBA都会将这个混淆,当然这个情况也有一些情有可原的原因.一来两者本来就是相辅相成,相互依赖关联: 另外一方 ...

  7. mysql字符集那些事

    1..查看mysql当前使用的字符集. 登录mysql 在mysql 里输入 show variables like 'character_set%' mysql> show variables ...

  8. 如何修改MySQL字符集

    首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则.这两个参数集可以在数据库实例.单个 ...

  9. Mysql字符集设置

    转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...

  10. MySQL字符集

    字符集的选择 1.如果数据库只需要支持中文,数据量很大,性能要求也很高,应该选择双字节定长编码的中文字符集(如GBK).因为相对于UTF-8而言,GBK"较小",每个汉字只占2个字 ...

随机推荐

  1. JavaScript初探系列(九)——BOM

    一.什么是BOM? BOM:Browser Object Model 是浏览器对象模型,浏览器对象模型提供了独立与内容的.可以与浏览器窗口进行互动的对象结构,BOM由多个对象构成,其中代表浏览器窗口的 ...

  2. 第08组 Alpha冲刺(2/4)

    队名 八组评分了吗 组长博客 小李的博客 作业博客 作业链接 组员1李昕晖(组长) 过去两天完成了哪些任务 文字/口头描述 11月17日了解各个小组的进度与难以攻破的地方,与隔壁第七组组长讨论进度发展 ...

  3. git 下载指定tag版本的源码<转>

    git clone --branch x.x.x https://xxx.xxx.com/xxx/xxx.git 原文地址:https://blog.csdn.net/weixin_30617561/ ...

  4. Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentContent' at row 1

    我分为下面三个步骤来解决: (1):修改mysql数据库的编码为uft8mb4 (2):修改数据表的编码为utf8mb4 (3):修改连接数据库的连接代码 更改数据库编码:ALTER DATABASE ...

  5. SNF-软件开发机器人-免费-火爆登场-程序下载及实战配套教程免费发放

    软件开发机器人不辱使命的完成了在软件开发方面的方式方法,颠覆了传统开发,可零编程开发软件,也可二开更强大功能. 为了更好的了解和理解软件开发机器人我们以模拟用友u8系统部分供应链程序为例进行模拟. 联 ...

  6. Centos7.5 php7.2 安装pdo_sqlsrv 连接 sql server(转)

    Centos7.5 php7.2 安装pdo_sqlsrv 连接 sql server 转:https://blog.csdn.net/gdali/article/details/82912542   ...

  7. C语言宏应用-------#define STR(X) #X

    C语言宏应用-------#define STR(X) #X   #:会把参数转换为字符串 #define STR(x) #x #define MAX 100 STR(MAX) 会被扩展成" ...

  8. DSCP 标

    DSCP差分服务代码点(Differentiated Services Code Point).它在每个数据包IP头部的服务类别TOS标识字节中,利用已使用的6比特和未使用的2比特,通过编码值来区分优 ...

  9. osg geometry清空vertex

    _vertices->clear(); _vertices->dirty(); _drawArrays->set(sog::PrimitiveSet::POINTS,0,0); _g ...

  10. Nginx打印json日志

    1.修改配置,在http{}中添加 log_format access_json '{"@timestamp":"$time_iso8601",' '" ...