Я отправляю этот символ «ç», который обычно отправляется через форму на веб-сайт, который я не контролирую. У меня возникают проблемы с кодировкой данных. Попытка отправить данные без кодирования его в UTF-8 производит эта ошибка (исправление: эта ошибка была для другого специального символа, перепутать!):Запросы POST-кодирования с помощью python
File "D:\Python34\lib\http\client.py", line 1181, in _send_request
body = body.encode('iso-8859-1')
UnicodeEncodeError: 'latin-1' codec can't encode character '\u0192' in position 512: ordinal not in range(256)
Я чтение данных из файла .csv, сохраненного с UTF -8 кодирующая (эта часть проблемы?)
После использования .encode («UTF-8») и немного проб и ошибок:
отправляю это: C Отображение на своем сайте как: §
Публикация этого вопроса: ç Отображается на сайте как: ç
Образец укороченного кода:
headers = {
'Accept' : 'application/json, text/javascript, */*; q=0.01',
'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
}
data = {
"info" : "ç"
}
r = requests.post('www.urlgoeshere.com', headers=headers, data=json.dumps(data,ensure_ascii=False).encode('utf-8'))
Как я уверен, вы заметите, я не очень хорошо осведомлен о кодировок, поэтому постарайтесь, чтобы обнажить со мной.
У каждого есть какие-либо советы о том, как я могу отправить эти специальные символы и правильно их отобразить? Или я должен просто отказаться от них и отредактировать их все. Их форма сайта управляет им в любом случае, поэтому я бы тоже хотел :)
Благодарим вас за помощь и помощь.
Edit для более полного кода .csv:
with open('data.csv', newline='') as dataFile:
dataReader = csv.reader(dataFile)
for row in dataReader:
data = {
"values":{
"title_id":row[1],
"title":row[0],
"other stuff":[{"foo":"bar",
"too":"foobar"}]}
}
Это в этом цикле, что я сделать запрос, а также. Data.csv представляет собой файл с разделителями-запятыми, сохраненный как utf-8.
Видимо вы отправляете символ ISO-8859-1. Попробуйте «info»: u «ç». Также посмотрите, является ли файл, содержащий ваш код кодировкой UTF-8 – Goufalite
Код и файл данных являются utf-8. Придется уйти на некоторое время. Вернитесь позже (и спасибо за помощь sofar). – raecer
Строка 'body = body.encode ('iso-8859-1')' is from httplib, которая пытается закодировать тело запросов iso-8859-1, добавить фактический код –