Python Unicode Conversions - PullRequest
       31

Python Unicode Conversions

2 голосов
/ 26 июня 2011

Как сделать следующие преобразования в Python?

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

Ответы [ 2 ]

3 голосов
/ 26 июня 2011

Вам нужно будет предоставить нам больше информации.

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'))
3 голосов
/ 26 июня 2011

Для преобразования 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'))
杭州
...