例如:
>>> 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"
有时需要网址。
目前我正在逐字节地进行,如:
>>> "%0X" % ord(u.encode('utf8')[0])
'E2'
有更简单/更优雅的方法吗?
答案 0 :(得分:4)
您可以尝试使用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'
答案 1 :(得分:3)
查看urllib模块http://docs.python.org/2/library/urllib.html#urllib.quote
中的quote函数>>> import urllib
>>> u = u'€€€'
>>> s = u.encode('utf-8')
>>> print urllib.quote(s)
%E2%82%AC%E2%82%AC%E2%82%AC