quickbaseapi返回CP1252编码的数据,但表示返回UTF8

2024-06-25 23:35:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用Python调用quickbaseapi时遇到编码问题。我调用API来获取一条记录,并在请求中指定encoding parameter为“UTF-8”。我从Quickbase得到的XML响应是UTF-8,因为XML的开头是:

<?xml version="1.0" encoding="utf-8" ?>

然而,XML字节实际上编码为CP1252。我确认了这一点,因为右单引号(Unicode char U+2019)被编码为字节0x92(CP1252),而不是UTF-8字节序列0xe20x80 0x99。你知道为什么Quickbase说XML响应是一种编码(UTF-8),而实际上使用另一种编码(CP1252)吗?在

请注意,我还在请求中传递了一个“Accept Charset:utf-8”头,但这没有效果。在


Tags: api编码字节parameterversion记录xmlutf
1条回答
网友
1楼 · 发布于 2024-06-25 23:35:14

Any idea why Quickbase is saying the XML response is one encoding (UTF-8) but actually using another (CP1252)?

可能是因为Quickbase开发人员复制并粘贴了XML声明,而没有真正理解encoding的含义。在

最简单的解决方法是使用xml_response = xml_response.decode('windows-1252').encode('UTF-8')来获取一个realUTF-8字符串来传递给XML解析器。在

相关问题 更多 >