代码之家  ›  专栏  ›  技术社区  ›  Juanjo Conti

替换Python中unicode字符串中的非ascii字符

  •  11
  • Juanjo Conti  · 技术社区  · 15 年前

    这是给定输入的输出:

    纸箱->纸箱

    ca±o->卡诺

    2 回复  |  直到 15 年前
        1
  •  21
  •   llasram    15 年前

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

    >>> import unicodedata
    >>> unicodedata.normalize('NFKD', u"m\u00fasica").encode('ascii', 'ignore')
    'musica'
    
        2
  •  7
  •   fiacobelli    13 年前

    现在,补充一下这个答案: 可能的情况是,您的数据不是unicode格式(即,您正在读取另一种编码的文件,并且不能在字符串前面加“u”)。这里有一个片段可能也有用(主要是对于那些阅读英文文件的人)。

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