2011-04-24 61 views
1

我偶然发现了我只能描述为Python交互式解释器中的错误。虽然这个错误是相当无关紧要的,但我认为这是一个有趣的问题,并且是学习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

我没有得到一个线索,在那里我会开始分析一个问题是这样,所以我希望这里有人能够提供一些见解。

一如既往的感谢!

回答

7

这不是Python的错误,这是您的终端切换到备用字符集。在shell提示符下运行reset来解决这个问题。

+0

呵呵!那么是什么造成了这一点?如何打印图片的内容导致改变字符集? – danem 2011-04-24 04:38:36

+0

像幻影tryglyphs。 :) – tchrist 2011-04-24 04:38:52

+1

@Pete:终端驱动程序设置为拦截特定字节并在收到时切换。该图片包含这些字节。 – 2011-04-24 04:40:12

相关问题