どのようにPythonで文字非ASCII文字を表示するには?
質問
私は、このようにPythonシェルを使用しています:
>>> s = 'Ã'
>>> s
'\xc3'
どのように私は、文字aを示すために、変数s印刷することができます?これは、最初と最も簡単な質問です。本当に、私はA、E、I、N、などのようなチルダと前回と他の人も、私はこれらの文字で正規表現を実行しようとしているような非ASCII文字を持っているWebページからコンテンツを取得していますウェブページのコンテンツに対するパターン式。
どのように??この問題を解決することができます。
これは、1つの正規表現の例である:
u'<td[^>]*>\s*Definición\s*</td><td class="value"[^>]*>\s*(?P<data>[\w ,-:\.\(\)]+)\s*</td>'
私はExpressonを使用する場合は、は、アプリケーションが正常に動作します。
EDIT [2009年5月26日16時38]。 申し訳ありませんが、私の説明について。私はより良い説明しようとするでしょう。
私はページからテキストを取得する必要があります。私は、そのページのURLを持っていると私はそのテキストを取得する正規表現を持っています。私は正規表現だと思った最初の事は間違っていました。私はエスプレッソとそれをチェックし、正常に動作し、私は私が欲しかったテキストを得ました。だから、私は思った2つ目はページの内容を印刷することだったと私は、コンテンツが、私は、Webページのソースコードには何を参照してくださいではなかったことを見たときでした。違いは、今、私は私がしなければならないのか分からないし、問題がページのコンテンツのエンコーディングや正規表現のパターンテキストである場合などA、E、I、のような非ASCII文字です。私が定義した正規表現の一つは、前のものです。
疑問があることwolud:パターンのテキストが非ASCII文字を持っている正規表現を使用して任意の問題がある???
解決
あなたはUTF-8として、それを印刷したいとします。 Pythonの3の前に、最高のは、具体的には、それを符号化することである。
print u'Ã'.encode('utf-8')
あなたは外部から、テキストを取得する場合あなたは、具体的には、
として( 'UTF-8)を復号する必要がありますf = open(my_file)
a = f.next().decode('utf-8') # you have a unicode line in a
print a.encode('utf-8')
他のヒント
をどのように私はS印刷できる変数は、文字Ã??? の
を表示します
print
を使用します:
>>> s = 'Ã'
>>> s
'\xc3'
>>> print s
Ã
私は文字がASCII /特別であるかどうかを確認するためにord()
を使用することになります:
if ord(c) > 127:
# special character
これはおそらく、このようなUTF-8などのマルチバイトエンコーディングでは動作しません。この場合、私は試験前にUnicodeに変換します。
あなたがWebページから特殊文字を取得する場合は、、あなたはエンコーディングを知っている必要があります。そして、それをデコードし、のUnicode HOWTO を参照してください。
編集:私は間違いなく、この質問が何であるかわからないんだけど...それを明確にするためには良い考えかもしれ
。