こんにちは私は、 ->u"ıöüç"
などの英語に正規化したい場合など、特殊文字を含む外部ソースからテキストベースのutf8データを取得します。これを達成するための最良の方法は何でしょうか?"ıöüç"
"iouc"
11569 次
4 に答える
43
Unidecodeモジュールの使用をお勧めします:
>>> from unidecode import unidecode
>>> unidecode(u'ıöüç')
'iouc'
ユニコード文字列をフィードし、バイト文字列を出力する方法に注意してください。出力はASCIIであることが保証されています。
于 2010-11-12T08:10:23.090 に答える
6
それはすべて、結果を音訳する際にどこまで行きたいかによって異なります。すべてをASCII(αβγ
からabg
)に変換したい場合unidecode
は、それが最適な方法です。
アクセント付き文字からアクセントを削除したいだけの場合は、正規化形式NFKD(アクセント付き文字á
をプレーン文字のa
後に)を使用して文字列を分解してから、アクセント( Unicode文字クラスU+0301 COMBINING ACUTE ACCENT
に属する)を破棄してみてください。マーク、非スペーシング」)。 Mn
import unicodedata
def remove_nonspacing_marks(s):
"Decompose the unicode string s and remove non-spacing marks."
return ''.join(c for c in unicodedata.normalize('NFKD', s)
if unicodedata.category(c) != 'Mn')
于 2010-11-12T11:41:27.800 に答える
2
私が見つけた最も簡単な方法:
unicodedata.normalize('NFKD', s).encode("ascii", "ignore")
于 2017-04-12T20:54:04.683 に答える
0
import unicodedata
unicodedata.normalize()
于 2010-11-12T08:05:52.973 に答える