首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL字符集utf8和utf-8的关系

MySQL存储Unicode数据的一种可选方法 utf8 MySQL中实现了UTF-8编码的unicode 字符集 MySQLutf8是utf8mb3的别名 utf8中,一个符号使用1~3个节点表示...对UTF-8支持不彻底,可采用utf8mb4字符集 utf8与utf8mb4的关系 都是实现了UTF-8编码的unicode 字符集 utf8仅支持基本多语言平面Basic Multilingual...使用utf8 的列最多可对255个字符建立索引 使用utf8mb4 的列最多可对191个字符建立索引 超集 字符集A,B ,B支持的所有字符A都支持,A 是B超集 比如 GBK字符集是GB2312字符集的超集...,它们又都是ASCII字符集的超集 utf8mb4是utf8的超集 字符集设置 set names x 等价于 set character_set_client=x; set character_set_connection...character_set_result=x; init-connect=set names binary 让client和server交互的时候以 什么模式(不做任何转化)来传送 default-character-set 设置[mysql

78810

MySQL字符集你还在使用错误的utf8

所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远都不要再使用“utf8”。 MySQL的“utf8”不是真正的UTF-8。...“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。 MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过这个问题。 ?...但是MySQL的“utf8字符集与其他程序还不兼容! MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。...2002年3月28日,MySQL开发者在第一个MySQL 4.1预览版中使用了RFC 2279。 同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。...这里是引用 总结 如果你在使用MySQL或MariaDB,不要再用“utf8”编码,而用“utf8mb4”。 推荐阅读 将现有数据库的字符编码从“utf8”转成“utf8mb4”。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

utf8字符集下的比较规则

前言: 在MySQL中,比较常用的字符集utf8和utf8mb4。...这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果大家有使用4字节编码一个字符的情况,比如存储一些emoji表情啥的,需要使用...1.utf8下比较规则概览 我们先查看下utf8字符集下支持的所有比较规则: mysql> SHOW COLLATION LIKE 'utf8\_%'; +----------------------...每种字符集都有一种默认的比较规则,SHOW COLLATION的返回结果中的Default列的值为YES的就是该字符集的默认比较规则,比方说utf8字符集默认的比较规则就是utf8_general_ci...对于MySQL 5.7版本,一般情况下建议将字符集改为utf8,比较规则选择默认的utf8_general_ci。

1.3K21

MySQL字符集

MySQL字符集 字符集介绍 gbk/gb2312 gbk/gb2312 采用双字节字符集,不论中、英文字符均使用双字符来表示,为了区分中文,将其最高位都设定成1 gb2312是gbk的子集,gbk...是gb18030的子集,gb2312仅能存储简体中文字符 gbk包括中日韩字符的大字符集 通常使用gbk字符集足够 国际通用性比utf8差,不过utf8占用的数据库比gbk大(utf8是三字节字符集)...存储空间:char(N)类型的存储空间和字符集有关系,结合刚才字符集的知识点,一个中文在utf8字符集中占用3个bytes、gbk占用2个bytes、数字和字符统一用一个字符表示。...存储空间:varchar(N)类型的存储空间和字符集有关系,结合刚才字符集的知识点,一个中文在utf8字符集中占用3个bytes、gbk统一占用2个bytes、数字和字符一个字符表示。...(长度小于255字节,使用一个字节来表示长度;大于255字节使用两个字节来表示长度) 修改数据库实例字符集 临时生效 mysql> set character_set = 'gbk'; mysql> set

3.6K10

Linux下MySQL 5.55.6的修改字符集编码为UTF8(彻底解决中文乱码问题)

昨天在CentOS 7上遇到MySQL 5.6遇到乱码问题,特此总结一下: 一、登录MySQL,用SHOW VARIABLES LIKE ‘character%’;查看下字符集,显示如下: +-----...-----------------+ character_set_database和character_set_server的默认字符集还是latin1。...二、最简单的完美修改方法,修改mysql的my.cnf文件中的字符集键值(注意配置的字段细节): 1、在[client]字段里加入default-character-set=utf8,如下: [client...=utf8,如下: [mysqld] port = 3306 socket = /var/lib/mysql/mysql.sock character-set-server=utf8 3、在[mysql...]字段里加入default-character-set=utf8,如下: [mysql] no-auto-rehash default-character-set=utf8 修改完成后,service

2.7K40

Mysql字符集-Mysql进阶(一)

Mysql中的utf8就是utf8mb3,只使用1~3个字节,utf8mb4则使用1~4个字节,正常utf8mb3就够用了,后者则可以存储emoji表情。...一个字符集可能对应若干比较规则,utf8-general-ci是常见的比较规则,忽略大小写,utf8默认就是这个。Utf8-general-bin(binary)则是二进制的比较规则,不区分大小写的。...(所以在排序的时候,如果排序没有区分大小写或者有异常,可以看看他的比较级是什么) Mysql字符集的比较规则和字符集分为四个模块:服务器级别、数据库级别、表级别、列级别。...Mysql字符集的转换 如果存入的是utf-8的编码,然后解析的是gbk的,这时候就会解码失败,于是我们看到的就是一堆乱码。...但如果存入的是utf8的编码,然后中间解码后再编码成gbk,之后再解码成gbk的,这时候就不会乱码。

2.4K20

MySQL字符集详解

一、MySQL字符集编码简单介绍   在使用MySQL时要注意6个需要编码的地方:系统的编码、客户端、服务端、库、表、列。...字符集编码不仅影响数据存储,还影响client程序和数据库之间的交互.在mysql中输入命令show session variables like '%char%'能够看到例如以下一些字符集(下面是以win10...为例,生产中多数时linux,在linux里面除了latin1之外都是utf8字符集):     mysql> show variables like "%char%";     +--------...二、MySQL字符集编码层次   第一部分主要是归纳了MySQL文档中关于字符集编码的说明。这部分主要说明下MySQL字符集编码层次:服务端-->数据库-->表-->字段。   ...,比如我们mysql设置的utf8编码的格式存储的文件路径,但是系统默认是gbk编码的,那么文件在保存到系统里的时候,文件的名称和你存在mysql里面的文件名称就对应不上了,出现乱码显示的问题,所以也要注意系统的编码

3.3K10

MySQL不要再用utf8

MySQL的Bug 这个问题本质上是MySQL一直没有修复的Bug,官方在2010年发布了一个叫utf8mb4的字符集,从而巧妙地绕开这个问题。...但是,他们并没有对新的字符集utf8mb4广而告之,可能是因为这个Bug让他们很尴尬,以至于很多人都还默认使用utf8,并且现在网络仍然建议开发者使用utf8,这些建议其实是错误的。...所有还在使用utf8编码格式的MySQL和MariaDB用户都应该改成utf8mb4,且不再使用utf8,避免出现类似的问题。...历史问题分析 为什么MySQL中的utf8不是真正的UTF-8? 或许从MySQL的更新日志中可以找到答案。...不过很显然,在这个不合法的字符集发布之后,MySQL就无法修复它,因为这样需要要求所有的用户重构他们的数据库,所以MySQLutf8还是最多支持3个字节,最终,MySQL在2010年发布了utf8mb4

2K20

mysql字符集小结

字符编码方式是用一个或多个字节表示字符集中的一个字符; 每种字符集都有自己编码方式, 因此同一个字符, 在不同字符集的编码方式下, 会产生不同的二进制值; ASCII字符集, UTF8字符集, GBK字符集都是常见字符集...UTF8字符集: Unicode字符集的一种, 支持了所有国家的文字字符, utf8采用1-4个字节表示字符. GBK字符集: 支持中文, 字符有一字节编码和两字节编码方式. 一....(1) 查看字符集编码设置 mysql> show variables like '%character%'; (2) 设置字符集编码 mysql> set names 'utf8'; 相当于同时执行以下...3个命令: set character_set_client = utf8; set character_set_results = utf8; set character_set_connection...= utf8; (3) 修改数据库字符集 只修改库的字符集, 影响以后创建的表的默认定义;对于已创建的表的字符集不受影响.一般在数据库修改字符集即可, 表和列都默认采用数据库的字符集. mysql>

3K20

理解MySql字符集

# 理解MySql字符集 # 字符集 字符集即为字符编码的集合。...# MySql中的字符集 MySql是一款关系型数据库,它存储的数据不应该受限于特定的语言文字,所以它支持不同字符集。...# 设置修改MySql中的字符集 MySql默认字符集 在安装MySql的时候我们可以通过源码编译的方式设置字符集,当然这种安装方式比较难就不做说明了,真实的环境中这么做的好处并不明显。...# 该配置项会修改默认的字符集编码格式 [mysqld] character-set-server=utf8 通过环境变量设置字符集 这种方式也不常用,更何况这个docker盛行的年代,如果需要请自行...设置database的字符集 CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci # 修改现有数据库的字符集 alter database

1.9K20

MySQL字符集学习

如果字符集包含在ASCII字符集中,则采用一个字节编码,否则采用两个字没编码。 GBK字符集:对GB2312字符集进行了扩充。编码方式兼容GB2312....UTF-8字符集:收录了当今世界各个国家地区使用的字符,并且还在扩充。它兼容ASCII字符集。采用变长编码方式,编码一个字符时需要使用1到4字节。 mysql 不区分字符集和编码方案的概念。...mysql utf8mb3: "阉割"过的utf-8字符集,只使用1-3个字节表示字符。 mysql utf8mb4: 正宗的utf-8字符集,使用1-4个字节表示字符。...mysqlutf8是 utf8mb3的别名。...字符集与比较规则有四个级别:服务器级别/数据库级别/表级别/列级别 mysql> SHOW variables like "%character_set_server%"; +-------------

2.9K20

mysql字符集配置&mysql中文乱码

毫无疑问,这定然是mysql字符集的配置问题。找到了解决问题的方向,那么,自然就很好办了。...mysql的各种配置文件所在的文件夹,现在你可以在百度上搜索到的mysql字符集解决办法好像都有点落后了,因为配置文件在无声无息的发生了位置改变。...接下来修改文件 使用命令: sudo vi mysqld.cnf 修改文件的部分: [mysqld] character-set-server=utf8 [mysql] default-character-set...=utf8 [client] default-character-set=utf8 注意啊,[mysql]、[client] 这两个内容很有可能是不存在的,你需要自己添加上去啊,而且,还要注意,[mysqld...结语 以上就是mysql的乱码配置过程,也可以是字符集配置过程,utf8这种编码格式是适用于所有的字符的,所以一般我们配置都是用的这种编码。

3.5K20

MySQL字符集乱码总结

"); //连接字符集使用utf8格式 $this->conn->query("set character_set_results = utf8");       //显示字符集使用utf8格式 return...字符集修改 MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 ,字段级。...MySQL中关于连接环境的字符集设置有 Client端,connection,results 通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。...且此时命令行也修改了 /var/lib/mysql/your_dbname/db.opt 文件的编码为utf8(同方法a) MySQL 表、字段的字符集修改 1) 修改表的字符集: ALTER TABLE...设置mysql字符集utf8(ITeye,推荐) mysql修改表、字段、库的字符集(推荐) How to update the max_connections setting in MySQL

9.2K20
领券