0

我在使用 Python 调用 Quickbase API 时遇到了编码问题。我调用API获取记录,并在请求中指定编码参数为“UTF-8”。我从 Quickbase 得到的 XML 响应说它是 UTF-8,因为 XML 以:

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

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

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

4

1 回答 1

2

知道为什么 Quickbase 说 XML 响应是一种编码 (UTF-8) 但实际上使用的是另一种 (CP1252)?

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

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

于 2012-04-02T17:00:43.000 回答