【发布时间】:2016-05-04 05:45:10
【问题描述】:
当我们相信 Python 3 在 Unicode 上一切正常时,当我遇到这种情况时,我感到很惊讶。
>>> amma = "அம்மா"
>>> amma
'அம்மா'
>>> len(amma)
5
显然泰米尔语字符串 "அம்மா" 有 3 个字母,len("அம்மா") 的返回值为 5 绝不会被接受或欣赏。
其他 Dravidian 或 Brahmic 脚本如何解决此问题以获得正确的字符串长度?
编辑#1: 考虑到@joey 的评论,这个问题可以改写如下。
如何在 Python 中计算字素长度?
我们知道 Swift 或 Perl6 默认会这样做
2> let amma = "அம்மா".characters.count
amma: Distance = 3
【问题讨论】:
-
@Mijago:不,不会的。
-
pypi 上的 grapheme 包似乎可以满足您的需求。我不相信只使用标准库中的工具有一个简单的解决方案(尽管 unicodedata 模块的工具可能很有用,这取决于您的需要)。
标签: python python-3.x unicode tamil