これが些細なことかどうかはわかりませんが、Unicode文字列をASCII文字列に変換する必要があり、これらすべてのエスケープ文字を使用したくありません。つまり、非常によく似たASCII文字に「おおよその」変換を行うことは可能ですか?
例:Gavin O’ConnorはGavin O\x92Connorに変換されますが、Gavin O’Connorに変換するだけでよいのですが。これは可能ですか?誰かがそれを行うためにいくつかのutilを書いたのですか、それともすべての文字を手動で置き換える必要がありますか?
どうもありがとうございました!マルコ
nidecode パッケージを使用して、文字列を音訳します。
>>> import unidecode
>>> unidecode.unidecode(u'Gavin O’Connor')
"Gavin O'Connor"
b = str(a.encode('utf-8').decode('ascii', 'ignore'))
正常に動作するはずです。
import unicodedata
unicode_string = u"Gavin O’Connor"
print unicodedata.normalize('NFKD', unicode_string).encode('ascii','ignore')
出力:
ギャヴィン・オコナー
正規化フォームについて説明しているドキュメントは次のとおりです。 http://unicode.org/reports/tr15/
文字からアクセントを取り除くテクニックがありますが、他の文字は直接置き換える必要があります。この記事を確認してください: http://effbot.org/zone/unicode-convert.htm
簡単な文字置換を試してください
str1 = "“I am the greatest”, said Gavin O’Connor"
print(str1)
print(str1.replace("’", "'").replace("“","\"").replace("”","\""))
PS: error を取得した場合は、# -*- coding: utf-8 -*-
ファイルの先頭に.py
を追加してください