2

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

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

2 回答 2

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'))
杭州
于 2011-06-26T01:23:40.100 回答
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'))
于 2011-06-26T01:24:09.663 回答