UnicodeEncodeError: кодек 'ASCII' не может закодировать символ при попытке POST HTTP в Python

Я пытаюсь сделать POST HTTP со строкой unicode (u '\xe4\xf6\xfc') в качестве параметра в Python, но я получаю следующую ошибку:

UnicodeEncodeError: кодек 'ASCII' не может закодировать символ

Это к коду, используемому для создания POST HTTP (с httplib2)

 http = httplib2.Http()  
 userInfo = [('Name', u'\xe4\xf6\xfc')]
 data = urlencode(userInfo)

 resp, content = http.request(url, 'POST', body=data)

Какие-либо идеи о том, как решить это?

10
задан msanders 6 June 2014 в 08:21
поделиться

1 ответ

Вы не можете напрямую размещать объекты Python Unicode. Вы должны сначала закодировать его как строку UTF-8:

name = u'\xe4\xf6\xfc'.encode('utf-8')
userInfo = [('Name', name)]
13
ответ дан 3 December 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: