小编Ach*_*ena的帖子

将包含 latin-1 字符的字节解码为十进制表示的字符串

我正在开展一个迁移项目,将 Web 服务器层从 python 2.7.8 升级到 python 3.6.3,并且在某些特殊情况下遇到了障碍。\n当从客户端收到请求时,有效负载将使用本地传输pyzmq 现在在bytespython3 中交互,而不是str(像在 python2 中一样)。

\n

现在,我收到的有效负载使用iso-8859-1 (latin-1)方案进行编码,我可以轻松地将其转换为字符串作为payload.decode('latin-1')并将其传递给下一个服务(svc- save-entity)需要字符串参数。

\n

但是,后续服务“ svc-save-entity ”期望非 latin-1 字符(如果存在)以 ASCII 字符引用(例如éfor \xc3\xa9)而不是十六进制(例如\\xe9for \xc3\xa9)表示。

\n

我正在努力寻找一种有效的方法来实现这种转换。任何Python专家都可以指导我吗?本质上我需要一个函数的定义decode_tostring()

\n
payload = b'Banco Santander (M\\xe9xico)'         #payload is in bytes\npayload_str = decode_tostring(payload)           #function to convert into string\npayload_str == 'Banco Santander (México)'  #payload_str is a string in ASCII Character Reference\n
Run Code Online (Sandbox Code Playgroud)\n

请的定义decode_tostring():) …

python iso-8859-1 python-3.x python-3.6

5
推荐指数
1
解决办法
1858
查看次数

标签 统计

iso-8859-1 ×1

python ×1

python-3.6 ×1

python-3.x ×1