1
hahastudio 2014-07-20 18:00:22 +08:00 1
我觉得对中文没有好方法= =
最好的方法就是查表= = 编码里面是个坑,GB2312里 16-55区为一级汉字,按拼音排序。 56-87区为二级汉字,按部首/笔画排序。 utf-8里面没有对中文字符的有意义的顺序 语言方面,如果是拼音顺序 那么多音字也是个坑,这你不查表真没辙 总之,别纠结,查表= = |
2
qian 2014-07-20 19:37:26 +08:00 1
是说这个吗... 仅日常使用... 程序员的需求我不懂
https://gist.github.com/lsfalimis/690e6ddb4f04ecdbf685 https://github.com/fxsjy/jieba sudo pip install jieba https://github.com/mozillazg/python-pinyin sudo pip install pypinyin |
3
imn1 2014-07-20 19:40:46 +08:00 1
utf-8基本是按偏旁排序的,后加的生僻字例外
拼音只能查表,现成的unicode-pinyin表开源站上有 |
4
Quaintjade 2014-07-20 20:14:17 +08:00 via Android 1
utf-8按偏旁排列,不过中日汉字放一起的,GBK映射过去不连续
|
5
xiaket 2014-07-21 08:57:13 +08:00 2
一般应用而言, 只是要比较两个字的拼音谁先谁后, 而不用解出具体拼音是什么的话, 直接转到GB18030后用大于小于比较就行了.
>>> s1 = "佛祖" >>> s2 = "上帝" >>> s1 > s2 True >>> s1.decode("UTF8").encode("GB18030") > s2.decode("UTF8").encode("GB18030") |
6
xiaket 2014-07-21 08:57:45 +08:00
上一条漏贴了一个结尾的False, sorry.
|
7
bmxbmx3 2021-03-07 15:26:27 +08:00
pypi 有个 cn_sort 库应该能帮到你(小声 bb,我写的,求个 star )
|