是什么导致打印功能挂起?我应该使用什么来安全打印?

2024-09-27 21:33:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是在用print语句调试UnicodeDecodeError时遇到了一大堆理解问题。你知道吗

我把自己和疯狂的理论搞混了,但最后问题是打印一个特定的字符串会挂起:

print '\xe6\x9c\xaa\xe5\x91\xbd\xe5\x90\x8d.jpg' 

是什么导致它挂起来的?你知道吗

我应该用什么来代替打印到控制台?print repr(x)?你知道吗


Tags: 字符串语句理论jpgprintxbdreprxe5
2条回答

对我来说,它在linux上运行正常

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print '\xe6\x9c\xaa\xe5\x91\xbd\xe5\x90\x8d.jpg' 
未命名.jpg

你用的是什么控制台?也许它有一个错误

似乎是UTF8编码的字符串:

>>> '\xe6\x9c\xaa\xe5\x91\xbd\xe5\x90\x8d.jpg'.decode('utf8')
u'\u672a\u547d\u540d.jpg'

如果您的控制台只能处理ASCII,而不能(比如)处理UTF-8,那么它将崩溃,因为无法将这一系列字节解码为ASCII可表示字符串:

>>> '\xe6\x9c\xaa\xe5\x91\xbd\xe5\x90\x8d.jpg'.decode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)

您需要使用支持UTF-8的控制台。你知道吗

相关问题 更多 >

    热门问题