# -*- coding: utf-8 -*-
a = 'éáűőúöüó€'
print type(a) # <type 'str'>
print a # éáűőúöüó€
print ord(a[-1]) # 172
为什么这个能够正常工作?难道不应该出现SyntaxError: Non-ASCII character '\xc3' in file ...
的错误吗?因为字符串中有Unicode字符。
但是,当我在字符串前加上u
时,结果却不同:
# -*- coding: utf-8 -*-
a = u'éáűőúöüó€'
print type(a) # <type 'unicode'>
print a # éáűőúöüó€
print ord(a[-1]) # 8364
为什么?Python中的内部表示有什么区别?我如何自己查看它?:)
str
对象。第二个是通过解码UTF-8形成的unicode
对象。使用repr()
函数查看它们之间的区别。 - Wooble