pythonpost请求修改编码格式_Python请求编码POST d

版本:Python2.7.3

其他库:Python请求1.2.3、jinja2(2.6)

我有一个向论坛提交数据的脚本,问题是非ascii字符显示为垃圾。例如,像AndréTéchineé这样的名字就是AndrÃTÃchinÃ)。

以下是提交数据的方式:

1)数据最初从UTF-8编码的CSV文件加载,如下所示:entries = []

with codecs.open(filename, 'r', 'utf-8') as f:

for row in unicode_csv_reader(f.readlines()[1:]):

entries.append(dict(zip(csv_header, row)))

当我在解释器中键入条目名时,我将其视为u'Andr\xe9 T\xe9chin\xe9'。

2)接下来我通过jinja2呈现数据:tpl = tpl_env.get_template(u'forumpost.html')

rendered = tpl.render(entries=entries)

当我键入在解释器中呈现的名称时,我再次看到相同的名称:u'Andr\xe9 T\xe9chin\xe9'

现在,如果我将呈现的变量写入这样的文件名,它将正确显示:with codecs.open('out.txt', 'a', 'utf-8') as f:

f.write(rendered)

但我必须把它送到论坛:

3)在邮政请求代码中,我有:params = {u'post': rendered}

headers = {u'content-type': u'application/x-www-form-urlencoded'}

session.post(posturl, data=params, headers=headers, cookies=session.cookies)

会话是请求会话。

而且这个名字在论坛帖子中显示的很烂。我试过以下方法:漏掉标题

Encode呈现为rendered.Encode('utf-8')(相同结果)

rendered=urllib.quote_plus(rendered)(显示为所有%XY)

如果我输入rendered.encode('utf-8'),我会看到以下内容:'Andr\xc3\xa9 T\xc3\xa9chin\xc3\xa9'

我怎样才能解决这个问题?谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值