首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以字节为单位的双引号对象与烧瓶响应数据中的双qoutes

以字节为单位的双引号对象与烧瓶响应数据中的双qoutes
EN

Stack Overflow用户
提问于 2019-07-12 07:55:00
回答 1查看 766关注 0票数 1

我正在为一个烧瓶应用程序编写一些断言。我在回答中成功地测试了Umlauts,如下所示:

assert 'Wählen Sie ...'.encode('utf-8') in rv.data

Umlaut“”在编码数据和来自web应用程序的响应中都具有相同的表示形式(\xc3\xa4)。

但现在,我试着用双引号来做同样的事情:

assert 'Der gewünschte Monat ... z.B. "2019-5".'.encode('utf-8') in rv.data

这是失败的,因为"在编码时仍然是",但是web应用程序使用"进行响应。

为了实现兼容性,我应该对正在测试的字符串做些什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-12 10:21:11

web应用程序在编码utf-8之前使用html实体代码对双引号进行编码。您可以使用html.escape函数来模拟这个过程,但不幸的是,它用"而不是"代替了‘“。

xml.sax.saxutils.escape函数不会自动转义双引号,但它接受要转义的字符字典和转义值,因此可以使用它生成文本:

代码语言:javascript
运行
复制
>>> from xml.sax import saxutils
>>> escaped = saxutils.escape('Der gewünschte Monat ... z.B. "2019-5".', {'"': '"'})
>>> escaped
'Der gewünschte Monat ... z.B. "2019-5".'

相反的方法是解码和取消服务器响应,并将其与原始字符串进行比较。您可以为此使用html.unescape函数,因为它将取消数字转义:

代码语言:javascript
运行
复制
>>> import html
>>> response = html.unescape(rv.data.decode('utf-8'))
>>> assert 'Der gewünschte Monat ... z.B. "2019-5".'.encode('utf-8') in response
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57002548

复制
相关文章

相似问题

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