了解Python交互式解释器中的打印字节

dan*_*nem 1 python terminal byte ansi-escape

我偶然发现了我只能将其描述为Python交互式解释器中的错误.虽然这个bug相当无关紧要,但我觉得这是一个有趣的问题,并且很有可能学习python,低级计算和调试.

问题出现在这里:

pic = open("blurry.jpg", "rb")
data = pic.read()
for byte in data:
    print byte
Run Code Online (Sandbox Code Playgroud)

这导致......

#prints the entire file byte by byte_
?

0
?
?
>>> 1;2c
Run Code Online (Sandbox Code Playgroud)

完成此操作后,我发现[] {}\@ ^已分别替换为Ä,Å,ä,å,ö,É,'Ü'.有趣的是,他们仍然保持功能.例如,list = Ä1,2,3,4Å不会引发任何错误.此外,可能更有趣......即使在我退出解释器并重新进入bash之后,这种行为仍在继续.

此外,我只能在使用特定图像时重新创建此行为,我在此处托管:http://imgur.com/lTo6m

我还没有弄清楚我会在哪里开始分析这样的问题,所以我希望有人可以提供一些见解.

一如既往地谢谢!

Ign*_*ams 7

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