>>> 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'
Есть более простой/более элегантный способ сделать это?
вы можете сделать 'u.encode ('utf8') кодируют ('шестигранной') ', чтобы получить шестнадцатеричный код, но вам нужно будет сделать еще одну работу, чтобы вставить нужный«% ». – monkut