使用Python将Unicode字符串转换为十六进制转义序列

例如:

>>> u = u'€€€'
>>> s = u.encode('utf8')
>>> s
'\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac'
>>> print s
€€€

但我想得到字符串:

"%E2%82%AC%E2%82%AC%E2%82%AC"

有时URL需要.

目前我正在逐字节地进行,如:

>>> "%0X" % ord(u.encode('utf8')[0])
'E2'

是否有更简单/更优雅的方式来做到这一点?

最佳答案 您可以尝试使用
urllib2模块.

import urllib2
s = '\xe2\x82\xac\xe2\x82\xac\xe2\x82\xac'
urllib2.quote(s)

输出:

'%E2%82%AC%E2%82%AC%E2%82%AC'
点赞