2016-03-09 3 views
0

Я использую python3 для вызова функции, написанной на другом языке. Функция возвращает строку, которая должна быть китайским символом. Но я получаю только строку, которая равна b '\ xbb \ xf9 \ xb2 \ xee', а не китайский символ, которого я ожидаю. Как преобразовать его обратно в символ, который мне нужен? Благодарю.ошибка кодирования строки python

Обновление: код

temp=ts.RemoteCallFunc("StockIndexFutures_basis",["IF00","SH000300",ts.EncodeDate(2012,3,7),ts.EncodeDate(2012,5,1),"日线"],{}); 

и результат список:

[{Ь '\ Xbb \ xf9 \ XB2 \ Xee': 7.313000000000102, b'SH000300' : 2631,487 , b'date ': b'2012-04-26', b'IF00 ': 2638,8}, {Ь' \ Xbb \ xf9 \ XB2 \ Xee ': 12.442999999999756, b'SH000300': 2626.157, b'date ': b'2012-04-27', b'IF00 ': 2638.6}]

+0

Оставьте свой код. – Idos

+0

Какая кодировка за исключением вашего текста? Это не похоже на UTF-8. –

ответ

2

Если вы хотите преобразовать строку байтов b'\xbb\xf9\xb2\xee' в соответствующие символы, вы можете позвонить decode по строке байта и указать один из standard codecs. Например:

x = b'\xbb\xf9\xb2\xee' 
x.decode('gbk') # gbk is listed as the "unified Chinese" codec 

'基差' 

Я просто догадываюсь о кодеке, и вы можете поэкспериментировать с этим.

Неясно, какую версию Python 3.x вы используете, поэтому я тестировал это с помощью Python 3.1, 3.2, 3.3 и 3.4, и результаты одинаковы для всех версий.

+0

Спасибо, это именно то, что я ищу. – cone001

Смежные вопросы