2

一部の Web ページを utf-8 コーディングで解析した後、印刷によって読み取ることはできますが、操作できない文字を取得していることに気付きました。

>> print data
A Deuce

>> data
u'\uff21\u3000\uff24\uff45\uff55\uff43\uff45'

Pythonを使用してこれを適切なコーディングにするにはどうすればよいですか? 入手したい

>> my_variable
'A Deuce'

(変数内のテキストを「通常の」文字列としてキャストできることを意味します)そのトピックに関連するいくつかのソリューションを見ましたが、関連する答えが見つかりませんでした(主に他の文字セットでのエンコード/デコードに基づいています)

4

3 に答える 3

2

この答えから少し助けて:

>>> table = dict([(x + 0xFF00 - 0x20, unichr(x)) for x in xrange(0x21, 0x7F)] + [(0x3000, unichr(0x20))])
>>> data.translate(table)
u'A Deuce'

このtranslateメソッドは、ある Unicode コード ポイントを別のコード ポイントにマップする辞書を取ります。この場合、全角のラテン アルファベット (基本的には 0xFF01 ~ 0xFF5E の範囲にシフトされた ASCII 文字セットの一部) が "通常の" ASCII 文字セットにマップされます。たとえば、0xFF21 (全角 A) は 0x41 (ASCII A) にマップされ、0xFF22 (全角 B) は 0x42 (ASCII B) にマップされます。

于 2013-05-17T00:35:44.343 に答える