現在、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シェル内からスクリプトを実行し、エラーが発生した直後にデバッグモードに入ろうとすると、最初にエラーをトリガーした行を実行すると、エラーが発生しなくなります。 ...
ここで何が起こっているのでしょうか?そして、私は何が欠けていますか?
前もって感謝します。