我猜你所看到的是连字 - 专业字体有glyps,它将几个单独的字符组合成一个(更好看的)字形.因此,不是将"f"和"i"写为两个字形,而是字体具有单个"fi"字形.将"fi"(两个字母)与"fi"(单个字形)进行比较.
在Python中,您可以使用该unicodedata
模块来操作较晚的Unicode文本.您还可以利用转换为NFKD普通形式来拆分连字:
>>> import unicodedata
>>> unicodedata.name(u'\uFB01')
'LATIN SMALL LIGATURE FI'
>>> unicodedata.normalize("NFKD", u'Arti\uFB01cial Immune System')
u'Artificial Immune System'
Run Code Online (Sandbox Code Playgroud)
因此,使用NFKD对字符串进行规范化可以帮助您.如果你发现这个分裂太多,那么我最好的建议是制作一个你要拆分的连字的小型映射表,并手动替换连字:
>>> ligatures = {0xFB00: u'ff', 0xFB01: u'fi'}
>>> u'Arti\uFB01cial Immune System'.translate(ligatures)
u'Artificial Immune System'
Run Code Online (Sandbox Code Playgroud)
请参阅Wikipedia文章以获取Unicode中的连字列表.
归档时间: |
|
查看次数: |
1843 次 |
最近记录: |