强制输出ascii字符串作为字节

时间:2016-03-15 20:46:42

标签: python python-2.7 unicode

如果我试图在交互式python会话中探索非ascii字符串:

arn:aws:ec2:region:account-id:key-pair/key-pair-name

它将字符串作为字节(因为python 2中的>>> 'юникод' '\xd1\x8e\xd0\xbd\xd0\xb8\xd0\xba\xd0\xbe\xd0\xb4' 实际上是字节)

我想获得ascii字符串的相同表示,但python隐式将其转换为字符串表示

str

我怎么能禁用这种行为? 或者我应该手动构建这样的功能?

2 个答案:

答案 0 :(得分:3)

尝试以下方法:

s = 'unicode'
print ''.join(['\\x%02x' % (ord(c)) for c in s])

给出:

\x75\x6e\x69\x63\x6f\x64\x65

答案 1 :(得分:0)

如果您只想快速检查十六进制值:

>>> s = 'unicode'
>>> s.encode('hex_codec')
'756e69636f6465'