mysql字符集&排序

本文比较了GBK和UTF-8两种字符集在编码范围、方式、兼容性和存储空间上的区别,并指出在不同字符集下的排序策略,如GBK直接按拼音排序,UTF-8则需转码后排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:GBK/UTF-8
(1)字符集范围不同:GBK编码支持中文字符和日韩字符,而UTF-8编码支持全球范围内的字符;

(2)编码方式不同:GBK编码采用双字节编码,每个字符占用2个字节,而UTF-8编码采用变长编码,一个字符的编码长度可为1-4个字节;

(3)兼容性不同:GBK编码在国内应用广泛,但在国际化应用上受到限制,而UTF-8编码具有更好的国际化兼容性;

(4)存储空间大小不同:由于GBK编码每个字符占用2个字节,因此在存储中占用的空间相对较大,而UTF-8编码采用变长编码,可以根据字符的实际长度来分配存储空间,因此在存储中占用的空间相对较小;

总之,GBK编码适用于中文和日韩语言环境,UTF-8编码适用于全球范围内的字符。
2:排序
(1)采用的是GBK字符集,那就可以直接按照拼音排序。因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了),直接在查询语句后面添加ORDER BY name ASC
(2)采用的是utf8字符集,需要在排序的时候对字段进行转码,对应的代码是ORDER BY convert(name using gbk) ASC,同样,查询的结果也是按照汉字拼音的升序排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值