2014-01-20 155 views
3

例如,一個十六進制轉義序列:轉換的Unicode字符串使用Python

>>> 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' 

有沒有更簡單/更優雅的方式來做到這一點?

+1

你可以做'u.encode( 'utf-8')編碼( '十六進制') '得到十六進制,但你需要做更多的工作來插入想要的''%''。 – monkut

回答

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' 
相關問題