1

Python の対話型インタープリターのバグとしか言いようのないものに出くわしました。バグは取るに足らないものですが、興味深い問題であり、Python、低レベルのコンピューティング、およびデバッグについて学ぶ良い機会だと感じました。

ここで問題が発生します。

pic = open("blurry.jpg", "rb")
data = pic.read()
for byte in data:
    print byte

これにより...

#prints the entire file byte by byte_
?

0
?
?
>>> 1;2c

これが完了すると、[ ] { } \ @ ^ がそれぞれ Ä、Å、ä、å、ö、É、'Ü' に置き換えられていることがわかります。興味深いことに、それらはまだ機能を維持しています。たとえばlist = Ä1,2,3,4Å、エラーは発生しません。さらに、おそらくもっと興味深い... この動作は、インタープリターを終了して bash に戻った後も続きます。

また、ここでホストした特定の画像を使用する場合にのみ、この動作を再現できます: http://imgur.com/lTo6m

このような問題の分析をどこから始めるかについての手がかりが得られなかったので、ここの誰かが洞察を提供してくれることを期待していました.

いつもありがとう!

4

1 に答える 1

7

これは Python のバグではなく、端末が別の文字セットに切り替わっているためです。resetこれを修正するには、シェル プロンプトで実行します。

于 2011-04-24T04:36:49.767 に答える