使用python 3.4
:
% python3
Python 3.4.2
% echo `python3 -c "print('a' * 72 + '\xff\xbe\xbf\xff')"` | hexdump -x
0000000 6161 6161 6161 6161 6161 6161 6161 6161
*
0000040 6161 6161 6161 6161 bfc3 bec2 bfc2 bfc3
0000050 000a
0000051
和这一个,使用python 2.7.9
:
% python2 --version
Python 2.7.9
% echo `python2 -c "print('a' * 72 + '\xff\xbe\xbf\xff')"` | hexdump -x
0000000 6161 6161 6161 6161 6161 6161 6161 6161
*
0000040 6161 6161 6161 6161 beff ffbf 000a
000004d
这真的是python 3.4
实施的错误吗?
答案 0 :(得分:3)
Python 2的普通'
- 引用的字符串表示字节串; Python 3代表字符串。相反语言中的等价物分别为bytes
(b'literal'
)和unicode
(u'literal'
)。
% python3 -c "from sys import stdout; stdout.buffer.write(b'a' * 72 + b'\xff\xbe\xbf\xff\n')" | hexdump -x