2012-04-20 52 views
8

PythonでUnicodeで問題が発生しました。私はそれにUnicodeアノテーションを持つグラフをプロットする必要があります。 tutorialによると、私は文字列をUnicodeで作成する必要があります。私はこのようにそれを行う:Python:Unicode文字列を作成する

annotation = u"%s has %s rev"%(art.title, len(art.revisions)) 

それはそれでUnicode文字を持っていart.titleです。時にはそのコードが動作することがあります。以下のエラーが表示されることがあります。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 19: ordinal not in range(128) 

どうすれば修正できますか?

EDIT: まさに「注釈」行の後、私はエラーを持っている:

File "script.py", line 195, in test_trie 
annotation = u"%s has %s rev"%(art.title, len(art.revisions)) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 19: ordinal not in range(128) 
+1

'art.title'はどこから来ていますか? –

+0

私たちに与えたコード行にエラーメッセージが表示されますか?私は 'annotation'を出力するときに実際にエラーが発生したと思います。その場合、そのコード行も表示できますか? – jogojapan

+0

@jogojapanはい、質問に編集を参照してください。 – ashim

答えて

5

私はあなたのタイトルはUnicode文字を持っているか、いない場合、それが依存だと思います。

は私がart.title.encode("utf-8")またはart.title.decode("utf-8")を追加してみてください、あなたは2つのオプションがあり、それは

4

をどのように動作するかを見ること:どちらか一方art.title.decode('utf_8')を使用するか、またはunicode(art.title, 'utf_8')でUTF-8エンコーディングを使用して新しいUnicodeの文字列を作成します。

+0

これら2つの表現は同じことを行い、 'decode'が私の選択です。同様の状況については、http://stackoverflow.com/questions/7585435/best-way-to-convert-string-to-bytes-in-python-3を参照してください。 –

関連する問題