GB2312是基于位置代码设计的(gb2312编码就是区位码)(gb2312编码采用什么编码)

我们的MySQL使用默认字符集Latin1,即直接用汉字字段存储GBK内部代码的编码。当需要对某些汉字进行拼音排序时,默认值无法按关键字顺序正确排序。

在线搜索之后,大多数在线方法都是针对使用UTF8字符的数据库。主要方法有:

1 直接转换字段为GBK,例如:

或者简单地将对应字段更改为GBK字符集。

我在我的数据库上测试了上述方法,或者直接根据字段进行排序,这并不好,主要是因为排序结果不理想。

直接排序 GB2312是基于位置代码设计的(gb2312编码就是区位码)(gb2312编码采用什么编码) 热门话题

2 检查表格

创建一个新表,以存储拼音母中汉字的第一个单词之间的对应关系。然后编写一个函数,通过将字段内容的第一个字转换为GBK,然后检查表来获得该方法。

[新闻消息]

我还尝试了这种方法,它太麻烦了,无法为我的数据库正确排序。

后来,我检查了汉字的一些信息,发现当GBK内部编码编码时,拼音排序的方法常用的第一级汉字3755使用拼音排序,第二级汉字不是,但考虑到人名的名称等。普通汉字,因此对于第一级汉字的正确排序就足够了。根据这个原则,直接根据字段排序应该是可能的我的数据库使用拉丁1字符集,汉字最初是GBK内部代码,但我在尝试后发现找不到它。参考上述方法2的表检查方法,我将字段内容转换为十六进制编码,然后就可以了!

这是我的示例数据排序输出的结果,如下所示:

按16进制排序 GB2312是基于位置代码设计的(gb2312编码就是区位码)(gb2312编码采用什么编码) 热门话题

附件:汉字简介

Ascii码

ASCII码为7位编码,编码范围为0x00-0x7F。ASCII字符包括英文字母、阿拉伯数字和标点符号。有33个控制字符,分别为0x00-0x20和0x7F。

仅支持ASCII码的系统将忽略每个字节的最高位,而只认为低7位是有效位置。赫兹字符码是由早期设计的,目的是只支持7位ASCII系统。在早期,许多电子邮件系统只支持ASCII码。为了传输中文电子邮件,他们必须使用Base64或其他编码方法。

GB2312

GB2312是基于位置代码设计的。位置码将编码表划分为94个区域。每个区域对应于94位数字。每个字符的区号和位数是汉字的位置码。位置代码通常由10个预付款表示。例如,1601表示第16个区域为1,对应的字符为“ah”。根据位置码的区域号和位号,0xa0分别由0xa0编码。


1b

发表评论

Copyright 2002-2022 by 范媛纺织有限公司(琼ICP备2022001899号-3).All Rights Reserved.