1
我发布这个字符“ç”,通常通过表单发送到我不控制的网站。我在编码数据时遇到了麻烦。尝试没有它编码为UTF-8发送数据产生这个错误(更正:适用于另一个特殊字符这个错误,错误!):请求使用python进行POST编码
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)
我从保存UTF .csv文件中读取数据-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'))
作为即时通讯相信你会发现,我不是很懂行的有关编码所以尽量与我裸露。
任何人都有关于如何发送这些特殊字符并让它们正确显示的提示?或者我应该放弃并全部编辑它们。他们的网站形式无论如何管理它,所以我也想:)
谢谢你的任何和所有帮助。
编辑更完整的.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字符。尝试“信息”:ü“ç”。另外看看包含你的代码的文件是否是UTF-8编码 – Goufalite
代码和数据文件都是utf-8。不得不离开一段时间。稍后再回来(并感谢帮助sofar)。 – raecer
'body = body.encode'('iso-8859-1')'是来自httplib,即试图对请求的主体进行编码的iso-8859-1,添加实际代码 –