![]() |
1
76
IBM的 ICU 图书馆可以做到这一点(还有更多)。它具有Python绑定: PyICU
使现代化
http://unicode.org/faq/collation.html#13
|
![]() |
2
58
我在答案中看不到这一点。我的应用程序使用python的标准库根据区域设置进行排序。这很容易。
向Lennart和其他回答者提出的问题:难道没有人知道“语言环境”吗?或者它不适合这个任务吗? |
![]() |
3
9
试试詹姆斯·陶伯的 Python Unicode Collation Algorithm this post 克里斯托弗·伦茨。 |
![]() |
4
8
摘要和扩展答案:
它还有很长的区域设置名称,因此您可以获得区域设置的漂亮显示名称、对Gregorian以外的其他日历的支持(尽管我不确定Python接口是否支持),以及大量其他或多或少不太清楚的区域设置支持。
如果要按字母顺序和区域设置进行排序,可以使用
|
![]() |
5
8
皮卡 : http://jtauber.com/blog/2006/01/27/python_unicode_collation_algorithm/
我将脚本上传到github,因为在撰写本文时,原始脚本已关闭,我不得不求助于web缓存来获取它: https://github.com/href/Python-Unicode-Collation-Algorithm
|
![]() |
6
6
我看到答案已经做得很好了,只是想指出其中一个编码效率低下的问题 Human Sort . 要对unicode字符串s应用选择性逐字符转换,它使用以下代码:
你传给老师的口述
看见
the docs
对于其他方法,您可以使用此
|
![]() |
7
1
|
|
8
1
https://pypi.python.org/pypi/zope.ucol )为完成这项任务。例如,对德语进行排序:
|
![]() |
9
1
完整的UCA解决方案
最简单、最简单、最直接的方法是调用Perl库模块,
Unicode::Collate::Locale
,这是标准的一个子类
Unicode::Collate
(对于瑞典语文本,您可能不一定会喜欢这一点,但因为Perl使用抽象字符,所以无论平台或构建,您都可以使用任何Unicode代码点!很少有语言提供这种便利。我提到这一点是因为我最近在这一令人恼火的问题上与Java进行了一场失败的斗争。) I have therefore provided you with a complete working script called ucsort 你可以打电话完全按照你的要求轻松地完成。 Unicode Collation Algorithm ,支持所有剪裁选项!!如果安装了可选模块或运行Perl5.13或更高版本,则可以完全访问易于使用的CLDR区域设置。见下文。 设想一个按以下方式排列的输入集:
默认的按代码点排序产生:
这在每个人的书中都是不正确的。使用我的脚本(使用Unicode排序算法),可以得到以下顺序:
这是默认的UCA排序。要获取瑞典语言环境,请致电 ucsort
这是一个更好的输入演示。首先,输入集:
但使用默认UCA会使其按以下方式排序:
但在瑞典地区,这样做:
如果您喜欢先大写再小写排序,请执行以下操作:
一般来说,运行脚本需要Perl5.10.1或更高版本。对于区域设置支持,您必须安装可选的CPAN模块
呼叫约定乌索特 大部分是未(der)记录的。但这是它在命令行上接受的开关/选项的概要:
如果您能够弄清楚如何直接从Python调用Perl库模块而不调用Perl脚本,那么一定要这样做。我只是不知道我自己是怎么想的。我很想知道怎么做。 同时,我相信这个脚本会做你需要做的事情 我现在将其用于所有文本排序。信息技术 最后 做我需要很久很久的事。
|
![]() |
10
0
对于您的用例来说,它远不是一个完整的解决方案,但是您可以看看 unaccent.py this 第页。) |
![]() |
11
0
杰夫·阿特伍德在他的博客上写了一篇好文章 Natural Sort Order pretty much what you ask
|
![]() |
Ryan · SQL Server中奇怪的比较结果 7 年前 |
![]() |
hjcoder18 · 如何使用Phinx更改列的排序规则 8 年前 |
![]() |
Sertan Pekel · SQL唯一标识符哈希字节不匹配 9 年前 |
|
Ethen · 带有外来字符的phpmyadmin csv导入无法正常工作 11 年前 |
![]() |
CMR · mysql特殊字符-不正确的字符串值'\xE1n' 11 年前 |