看下面的代码片段:
>>> import unicodedata
>>> from unicodedata import normalize, name
>>> normalize('NFKD', u'\xb4')
u' \u0301'
>>> normalize('NFKD', u'a\xb4a')
u'a \u0301a'
>>> normalize('NFKC', u'a\xb4a')
u'a \u0301a'
>>> name(u'\xb4'), name(u'\u0301')
('ACUTE ACCENT', 'COMBINING ACUTE ACCENT')
Run Code Online (Sandbox Code Playgroud)
我想了解,如果行为翻译u'\xb4'到u' \u0301'是正确的.为什么它将结合的重音与空间相结合?为什么它会翻译你\xb4呢?
在fileformat,我们看到ACUTE ACCENT用于调用SPACING ACUTE.我想,这只是意味着光标应该移动而不是等待输入以下字符.
UPD:如果有人感兴趣,这里有一个列表,如果NFKC规范化后的unicode字符在开头有空格:http://pastebin.com/Z99r5AK9
Mar*_*ers 11
重音字符是空格和组合重音字符的组合,如Unicode标准中所指定:
>>> import unicodedata
>>> unicodedata.decomposition(u'\xb4')
'<compat> 0020 0301'
Run Code Online (Sandbox Code Playgroud)
这个\u00B4角色有一些模糊的历史,但是Unicode标准决定把它当作空白+重音,即使它经常被用作变音标记,请参阅此讨论.
您也许可以使用它\u02CA作为替代方案; 它不被视为空格,也没有指定分解.它取而代之的是一封信,因此您的里程可能会有所不同.
| 归档时间: |
|
| 查看次数: |
2494 次 |
| 最近记录: |