![]() | 1 hahastudio 2014-07-20 18:00:22 +08:00 ![]() 我觉得对中文没有好方法= = 最好的方法就是查表= = 编码里面是个坑,里 16-55区为一级汉字,按拼音排序。 56-87区为二级汉字,按部首/笔画排序。 utf-8里面没有对中文字符的有意义的顺序 语言方面,如果是拼音顺序 那么多音字也是个坑,这你不查表真没辙 总之,别纠结,查表= = |
![]() | 2 qian 2014-07-20 19:37:26 +08:00 ![]() 是说这个吗... 仅日常使用... 程序员的需求我不懂 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 ![]() utf-8基本是按偏旁排序的,后加的生僻字例外 拼音只能查表,现成的unicode-pinyin表开源站上有 |
![]() | 4 Quaintjade 2014-07-20 20:14:17 +08:00 via Android ![]() utf-8按偏旁排列,不过中日汉字放一起的,GBK映射过去不连续 |
![]() | 5 xiaket 2014-07-21 08:57:13 +08:00 ![]() 一般应用而言, 只是要比较两个字的拼音谁先谁后, 而不用解出具体拼音是什么的话, 直接转到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 ) |