我在使用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”头,但这没有效果。在
可能是因为Quickbase开发人员复制并粘贴了XML声明,而没有真正理解
encoding
的含义。在最简单的解决方法是使用
xml_response = xml_response.decode('windows-1252').encode('UTF-8')
来获取一个realUTF-8字符串来传递给XML解析器。在相关问题 更多 >
编程相关推荐