1

現在、Ubuntu 13.04 と Python 2.7.4 を使用しており、次の行を含むスクリプトを実行しようとしました。

html = unicode(html, 'cp932').encode('utf-8')
html1, html2 = html.split(some_text) # this line spits out the error

しかし、Ubuntu 13.04 で上記のスクリプトを実行すると、エラーが発生しましたUnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 106: ordinal not in range(128)。ただし、このまったく同じスクリプトは、OS X 10.8 および Python 2.7.3 で常に正常に実行できます。では、なぜ2つのプラットフォームのうちの1つだけでエラーが発生したのだろうか...

特にこの投稿 ( UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 1 ) を読んだ後、最初に考えたのは、OS X で使用している別のLANG環境にいるために二分法が生じたということでした。jp_JP.UTF-8しかしen_US.UTF-8、Ubuntuでは。そのため、前述のスクリプトにもう 1 行追加しようとしましos.environ['LANG'] = 'jp_JP.UTF-8'たが、それでも同じエラーが発生しました。

もう1つの奇妙な現象は、UbuntuのIPythonシェル内からスクリプトを実行し、エラーが発生した直後にデバッグモードに入ろうとすると、最初にエラーをトリガーした行を実行すると、エラーが発生しなくなります。 ...

ここで何が起こっているのでしょうか?そして、私は何が欠けていますか?

前もって感謝します。

4

1 に答える 1