Python Unicode转换

时间:2011-06-26 01:13:12

标签: python string unicode encoding python-unicode

如何在Python中进行以下转换?

"杭州" to "%BA%BC%D6%DD"
"大连" to "%B4%F3%C1%AC"

2 个答案:

答案 0 :(得分:3)

u'杭州'转换为'%BA%BC%D6%DD'

In [24]: ''.join('%{0:X}'.format(ord(c)) for c in u"杭州".encode('gbk'))
Out[24]: '%BA%BC%D6%DD'

In [25]: ''.join('%{0:X}'.format(ord(c)) for c in u"大连".encode('gbk'))
Out[25]: '%B4%F3%C1%AC'

'%BA%BC%D6%DD'转换为u'杭州'

In [54]: import binascii    
In [55]: print(binascii.unhexlify(''.join('%BA%BC%D6%DD'.split('%'))).decode('gbk'))
杭州

答案 1 :(得分:3)

您需要向我们提供更多信息。

def encode(s):
    if s == "杭州":
        return "%BA%BC%D6%DD"
    if s == "大连":
        return "%B4%F3%C1%AC"
    raise ValueError

你需要告诉我们你正在使用的编码。

import urllib.parse
def encode(s):
    return urllib.parse.quote(s.encode('gbk'))