将unicode文本标准化

问题描述

你正在处理Unicode字符串,需要确保所有字符串在底层有相同的表示。以删除变音符号,重音等.

import unicodedata

""" Normalise (normalize) unicode data in Python to remove umlauts, accents etc. """

data = u'naïve café'
normal = unicodedata.normalize('NFKD', data).encode('ASCII', 'ignore')
print normal

# prints "naive cafe"
  • NFC表示字符应该是整体组成(比如可能的话就使用单一编码)
  • NFD表示字符应该分解为多个组合字符表示