【问题标题】:Replace non-ascii chars from a unicode string in Python从 Python 中的 unicode 字符串替换非 ascii 字符
【发布时间】:2010-09-13 21:57:01
【问题描述】:

如何在 Python 中用 unicode 字符串替换非 ascii 字符?

这是给定输入的输出:

音乐 -> 音乐

cartón -> 纸箱

caño -> cano

Myaybe 使用 dict,其中 'á' 是键,'a' 是值?

【问题讨论】:

标签: python ascii


【解决方案1】:

如果您只想将重音字符降级为非重音字符:

>>> import unicodedata
>>> unicodedata.normalize('NFKD', u"m\u00fasica").encode('ascii', 'ignore')
'musica'

【讨论】:

  • NFKD 是做什么的?
  • @bikashg "规范化形式兼容性分解。"通过“兼容性”分解字符串,既可以将任何预组合字符分解为等效的组合字符序列,也可以转换例如连字成组成字符的语义等价序列。请参阅en.wikipedia.org/wiki/Unicode_equivalence#Normalization 了解完整的详细信息和相关标准的参考。
【解决方案2】:

现在,补充一下这个答案: 可能是您的数据不是以 unicode 形式出现的(即,您正在读取具有另一种编码的文件,并且您不能在字符串前面加上“u”)。这是一个可能也可以工作的 sn-p(主要适用于那些阅读英文文件的人)。

import unicodedata
unicodedata.normalize('NFKD',unicode(someString,"ISO-8859-1")).encode("ascii","ignore")

【讨论】:

    猜你喜欢
    • 2017-04-13
    • 2013-06-20
    • 1970-01-01
    • 2018-07-02
    • 2015-02-27
    • 1970-01-01
    • 2013-09-08
    • 2013-05-27
    • 1970-01-01
    相关资源
    最近更新 更多