首页
学习
活动
专区
圈层
工具
发布

utf8字符集下的比较规则

前言: 在MySQL中,比较常用的字符集是utf8和utf8mb4。...这两个字符集是类似的,utf8是utf8mb3的别名,所以之后在MySQL中提到utf8就意味着使用1~3个字节来表示一个字符,如果大家有使用4字节编码一个字符的情况,比如存储一些emoji表情啥的,需要使用...每种字符集都有一种默认的比较规则,SHOW COLLATION的返回结果中的Default列的值为YES的就是该字符集的默认比较规则,比方说utf8字符集默认的比较规则就是utf8_general_ci...表名 MODIFY 列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称]; 2.几种比较规则对比 utf8字符集下默认的比较规则是utf8_general_ci...mysql | mysql | +-------------+-------------+---------+ 3.关于比较规则的选择与建议 对于MySQL 5.7版本,一般情况下建议将字符集改为

1.9K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    是MySQL存储Unicode数据的一种可选方法 utf8 MySQL中实现了UTF-8编码的unicode 字符集 MySQL中utf8是utf8mb3的别名 utf8中,一个符号使用1~3个节点表示...对UTF-8支持不彻底,可采用utf8mb4字符集 utf8与utf8mb4的关系 都是实现了UTF-8编码的unicode 字符集 utf8仅支持基本多语言平面Basic Multilingual...个字节存储 对于BMP字符,utf8和utf8mb4具有相同的编码,相同的长度 对于非BMP字符,utf8mb4使用4个字节来存储,utf8不能存储非BMP字符 innodb中默认最大可对767个字节建立索引...使用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

    1.4K10

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

    所有在使用“utf8”的MySQL和MariaDB用户都应该改用“utf8mb4”,永远都不要再使用“utf8”。 MySQL的“utf8”不是真正的UTF-8。...“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。 MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过这个问题。 ?...几乎所有的网络应用都使用了Unicode字符集。Unicode字符集包含了上百万个字符。最简单的编码是UTF-32,每个字符使用32位。...但是MySQL的“utf8”字符集与其他程序还不兼容! MySQL从4.1版本开始支持UTF-8,也就是2003年,而今天使用的UTF-8标准(RFC 3629)是随后才出现的。...同年9月,他们对MySQL源代码进行了一次调整:“UTF8现在最多只支持3个字节的序列”。 utfmb4字符集 支持BMP和补充字符。 每个多字节字符最多需要四个字节。

    1.7K10

    Linux字符集、编码、转码、字体相关知识

    字符集只是一个集合,是后边字符的存储,转换,显示设计的基本依据。操作系统中并不必须存储一套字符集,这只是一个逻辑概念。 字符编号编码 有了字符集,就考虑制定编号编码规范,用来存储,传输字符。...如果一个操作系统要能处理显示多种字符集,需要安装多个字符集的编解码规则和多个字符集的字体,但这样就比较复杂了。...在Linux系统中,字体文件通常存储在以下几个主要路径中: 系统字体路径: /usr/share/fonts/:这是系统字体的主要存储路径,包含了预安装的系统字体。...Fixed16.psfu.gz 关于代码页(Code Pages) Windows代码页,比如我们最长见的CP936(代表中国 - 简体中文(GB2312)),就是字符编码在Windows上的一种表示方法,Linux...在Linux系统中,输入法框架(如IBus、fcitx)也通常使用Unicode编码。 输入法引擎将用户输入的字符转换为Unicode码点,并将其传递给目标应用程序。

    1.5K10

    MySQL字符集乱码总结

    产生乱码的根本原因在于: 1.客户机没有正确地设置client字符集,导致原先的SQL语句被转换成connection所指字符集,而这种转换,是会丢失信息的,如果client是utf8格式,那么如果转换成...3.一定要保证connection字符集大于等于client字符集,不然就会信息丢失,比如: latin1 utf8,若设置set character_set_client..."); //连接字符集使用utf8格式 $this->conn->query("set character_set_results = utf8");       //显示字符集使用utf8格式 return...为latin1,只需把utf8改为latin1,更多编码格式请见下面:show charset; (3) 修改服务器级,在 [mysqld] 添加两行: character-set-server=utf8...变为了 utf8 mysql> status; -------------- mysql Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (x86_64

    10.2K20

    Mycat连接MySQL 8时的注意事项

    二、关于MySql 8 主要是修改Mysql配置文件,在Windows平台是my.ini,在linux平台是my.cnf: 修改缺省加密方式:在安装完MySQL 8后,需将缺省的加密方式修改为mysql_native_password...如果是在Linux平台,在首次启动前设置lower_case_table_names = 1(表名大小写不敏感),注意一旦数据库中已有数据,再如此设置会导致启动mysql失败。...为防止出现字符集不匹配,最好也显式设置字符集(可选)。...[mysql] default-character-set=utf8 三、关于MyCat 主要涉及三个方面。...Mycat登录逻辑库的传统方式是:mysql -uroot -p -h127.0.0.1 -P8066 -DTESTDB 但对于MySql 8,会报密码错误方式,这是由于Mysql 8的缺省加密方式已经改为

    1.7K20

    windows平台下编辑的内容传到linux平台出现中文乱码的解决办法

    文件,将字符集改为"UTF-8" 按Win键+run出现"运行",在里面输入"notepad"即可打开记事本。...然后"文件"->"打开" haha.txt文件,将下面一栏的编码改为"UTF-8",然后将之前编辑的内容覆盖到新的UTF-8编码的haha.txt文件 再次上传到linux平台下,查看就不会出现中文乱码了...[root@test-vm01 ~]# iconv -f gbk -t utf8 haha.txt > haha.txt.utf8 [root@test-vm01 ~]# cat haha.txt.utf8...主机传文件是经常的事,但有时文件名有中文,传到Linux机器会有乱码,选择起来也很麻烦,下面简单说下应对方法: 解决办法: 一般这种问题是文件的编码字符集、Shell编码字符集、XShell编码字符集不匹配...临时办法 1)简体中文的Windows一般使用GB字符集,这里将XShell设置为GBK 2) Linux主机 [root@AppServer1 ~]# export LANG=zh_CN.gbk 或者

    3.4K80

    深入理解MySQL字符集及校对规则(二)

    解答如下:假设gbk字符集的字符串“你好”,需要转为utf8字符集存储,实际就是对于“你好”字符串中的每个汉字去utf8编码表里面查询对应的二进制,然后存储。...二、字符集常见处理操作 1.查看字符集编码设置 mysql> show variables like ‘%character%’; 2、设置字符集编码 mysql> set names ‘utf8’;...: MySQL软件本身是没有字符集的,主要是因为工具所在的OS的字符集(Windows:gbk、Linux:utf8),所以字符集的正确实践非常重要: (1)对于insert来说,character_set_client...这里我们就简单演示这几种情况,这里我使用SecureCRT(utf8字符集)连接Linux系统 ?...+------+--------+ | NULL | 中国 | | NULL | 中国 | +------+--------+ 2 rows in set (0.00 sec) 11、把客户端字符集修改为

    2.5K10
    领券