LA_*_*LA_ 2 python string unicode python-2.7
我在OSX 10.9上使用python 2.7,并希望05. ?????.mp3用12个符号剪切unicode string(),所以我用mp3file[:12]它来剪切12个符号.但结果我得到了字符串05. ?????.m,只有11个符号.但len(mp3file[:12])返回12.看起来问题是俄罗斯符号?.
这可能有什么问题?
这个的主要问题 - 我通常无法显示字符串{:<12}'.format(mp3file[:12]).
你有一个带有组合字符的unicode文本:
u'05. \u0427\u0430\u0438\u0306\u043a\u0430.m'
Run Code Online (Sandbox Code Playgroud)
在U + 0306是一个组合杆菌码点,?,它结合了前述?CYRILLIC小写的i来形成:
>>> print u'\u0438'
?
>>> print u'\u0438\u0306'
?
Run Code Online (Sandbox Code Playgroud)
您可以将其标准化为组合形式,U + 0439 CYRILLIC SMALL LETTER SHORT I:
>>> import unicodedata
>>> unicodedata.normalize('NFC', u'\u0438\u0306')
u'\u0439'
Run Code Online (Sandbox Code Playgroud)
这使用该unicodedata.normalize()函数来生成组合的正规形式.