首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python NLS http编码

Python NLS http编码
EN

Stack Overflow用户
提问于 2019-05-15 00:28:18
回答 1查看 59关注 0票数 0

我正在尝试使用国家语言支持(NLS)在我们的网页上做一些集成测试。例如,我尝试发布一个页面,其中的表单包含first_name的值"Fréd“。

为此,我使用以下命令设置Python 3.7.3

代码语言:javascript
复制
import request

然后使用数据{'first_name':"Fr\u00E9d"}执行requests.post

在某些情况下,UTF-8字符串会被转换为字节,但这些字节不会被转换为重音e代码。我深入研究了代码,并将其归结为以下测试用例:

代码语言:javascript
复制
>>> "Fr\u00E9d"
'Fréd'
>>> "Fr\u00E9d".encode("utf-8")
b'Fr\xc3\xa9d'

w3schools列表\xc3为拉丁文大写字母A,带有波浪号,\xa9为版权符号。

假设这不是Python编码的问题,那么我应该如何在Python中编码这些NLS字符。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-05-21 23:26:40

我想我开始明白了。

因此,当我发送一个值为"Fréd“的时,我的浏览器将其编码为(根据firefox调试器) Fr%E9d。然后,web服务器似乎将其识别为Fréd。

"Fr\u00E9d“被requests/models.py中的.encode("utf-8")转换为b'Fr\xc3\xa9d‘。问题是我们的表单似乎只接受-charset=“ISO-8859-1”。

我猜python请求包不应该盲目地进行转换。但这有点超出了这个问题的范围。

谢谢你把这事说清楚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56134835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档