総合的な文字の置き換えはありますか文字列内のすべての非ASCIIまたは非Unicode文字を検索し、それらをASCIIまたはUnicodeの同等物で置き換えるpython用のモジュール?符号化または復号化中の「無視」引数によるこの快適さはめったにありませんが、同様に「?」もそうです。翻訳されていない文字があったすべての場所で。
厄介なモジュールを探しています要求された標準に合わせて、それらを文字に準拠させます。 現存するアルファベットとエンコーディングの数が多少これを不可能にしていることを私は理解していますが、確かに誰かがそれに刺したのでしょうか?初歩的な解決策でも現状より良いでしょう。
これが意味するであろうデータ転送の単純化は非常に大きいです。
回答:
回答№1は4私はあなたが欲しいものが本当に可能であるとは思わない - しかし私は適当な選択肢があると思う。
unicodedataには、テキストを適切に劣化させることができる「正規化」メソッドがあります。
import unicodedata
def gracefully_degrade_to_ascii( text ):
return unicodedata.normalize("NFKD",text).encode("ascii","ignore")
使用している文字セットは既にunicodeにマッピングされます - あるいは少なくともunicodeにマッピングすることができます - あなたはこのモジュールを使ってそのテキストのunicodeバージョンをasciiかutf-8に下げることができるはずです(それも標準ライブラリの一部です)
フルドキュメント - http://docs.python.org/library/unicodedata.html
回答№2の場合は0
個々のキャラクターを見てそのキャラクターを推測するエンコーディングは難しく、おそらくあまり正確ではありません。ただし、ファイル全体のエンコーディングを試して検出するためにchardetを使用することができます。その後、文字列decode()およびencode()メソッドを使用して、そのエンコードをutf-8に変換できます。
http://pypi.python.org/pypi/chardet
そしてutf-8はASCIIと後方互換性があるので大したことはしません。