请教数据库高手(咱这没有SQL版阿)

03-07-23 raynix
我用sapdb做了个测试,用unicode存储简体中文,不过排序还是和mysql一样,有问题:

select name from test order by name

不简单


啊啊
恶心


简单


这是按照什么排的阿?能不能实现按拼音顺序排(就像gb2312编码的)?

谢谢!

robbin
2003-07-23 15:11
用汉字的Unicode编码和GBK编码顺序可能不一样,大概没有办法安装拼音排序。你试试数据库使用GBK编码。

raynix
2003-07-23 16:47
嗯,的确是不一样。可是我离不开unicode了,一部分用户是香港总部的(用big5),其他是北京、上海等分公司的用户(gbk)。所以不能只用gbk了。还有什么其它的办法么?

多谢了~~

robbin
2003-07-23 17:13
我也没有什么办法。一定要按照拼音对中文排序吗?

raynix
2003-07-23 17:23
原来在mysql上调好了unicode存储,以为可以一劳永逸了,呵呵。后来发现排序后看不出是什么规则,惨了。

真不明白制定unicode时是怎么处理中文编码规则的。

robbin
2003-07-23 17:37
我刚才查了一下word里面的符合表,那里面就有汉字的Unicode编码和GBK编码,可以很明显的看出来,GBK编码是按照拼音顺序来组织排列的,而Unicode是按照偏旁部首来组织排列的。

raynix
2003-07-23 17:40
那就game over了。唉~~~

谢谢robbin

manbaum
2003-07-24 12:31
MySQL里在安装后的 share\charset 目录下增加一个 GBK 的配置文件,并在 mysql 的设置里将字符集定义为 GBK,就可以按照拼音排序了。但是这个 gbk 字符集配置文件我没找到地方下载,以前我自己用程序生成了一个,现在找不到去哪里了。

你可以下载 mysql 源代码,里面有完整的各种字符集的实现,不过,需要你自己重新编译来支持 GBK。

KillerMan
2003-07-24 15:55
unicode 大致按照部首排列。查CJK的资料。