OverflowError:>编码字符串时,UTF-8序列长度不受支持


问题内容

在Twisted资源内部,我将返回一个json编码的dict作为下面的响应变量。数据是一个由5个人组成的列表,每个人的姓名,向导和其他几个字段的长度都不超过32个字符,因此没有大量数据。

我经常会收到此OverflowError异常,但我不太了解不受支持的utf-8序列长度是指什么。

self.request.write(ujson.dumps(response))

exceptions.OverflowError:编码字符串时不支持的UTF-8序列长度


问题答案:

如有疑问,请检查来源:http
:
//code.google.com/p/rapidjson/source/browse/trunk/thirdparty/ultrajson/ultrajsonenc.c

当UTF-8长度为5或6个字节时,会发生此错误。此JSON实现未实现。如果您仍然在浏览器中使用数据,这些字符将不起作用,因为它们不在UTF-16范围内。

如果这种情况经常发生,我会感到惊讶。它只会在U +
1FFFFF上的Unicode代码点上发生,这种情况很少见,而且由于超出此范围,大多数Python版本甚至不支持Unicode字符串。您应该找出为什么这些字符显示在您的数据中。