gpt4 book ai didi

python - 为什么 python string cut 在请求 12 个符号时返回 11 个符号?

转载 作者:行者123 更新时间:2023-11-28 20:22:31 25 4
gpt4 key购买 nike

我在 OSX 10.9 上使用 python 2.7 并想将 unicode 字符串 ( 05. Чайка.mp3 ) 剪切 12 个符号,所以我使用 mp3file[:12]将其切割 12 个符号。但结果我得到了像 05. Чайка.m 这样的字符串, 只有 11 个符号。但是len(mp3file[:12])返回 12。看起来问题出在俄语符号 й 上.

这里可能有什么问题?

这个的主要问题 - 我无法正常显示带有 {:<12}'.format(mp3file[:12]) 的字符串.

最佳答案

您有带有组合字符的 unicode 文本:

u'05. \u0427\u0430\u0438\u0306\u043a\u0430.m'

U+0306是一个 COMBINING BREVE 代码点,̆,它与前面的 и CYRILLIC SMALL LETTER I 组合在一起形成:

>>> print u'\u0438'
и
>>> print u'\u0438\u0306'
й

您可以 normalize that to the combined form , U+0439 CYRILLIC SMALL LETTER SHORT I相反:

>>> import unicodedata
>>> unicodedata.normalize('NFC', u'\u0438\u0306')
u'\u0439'

这使用了 unicodedata.normalize() function产生一个组合的范式。

关于python - 为什么 python string cut 在请求 12 个符号时返回 11 个符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23322952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com