Python Django+';utf8';编解码器可以';t解码位置0处的字节0xd0:无效的延续字节+;赛昂

Python Django+';utf8';编解码器可以';t解码位置0处的字节0xd0:无效的延续字节+;赛昂,python,c,django,character-encoding,cython,Python,C,Django,Character Encoding,Cython,我在Ubuntu11.04上运行django应用程序,并使用cython调用用C编写的第三方api。当我为用C编写的api编译所有内容,并在django之外运行python脚本来测试api时,所有调用都正常工作 我调用api,它以字符串形式返回3个参数: "36",, '029', ‘973345’ 然而,当我试图从django内部调用api并在前端显示时,我得到了错误: Type Error 'utf8' codec can't decode byte 0xd0 in position 0:

我在Ubuntu11.04上运行django应用程序,并使用cython调用用C编写的第三方api。当我为用C编写的api编译所有内容,并在django之外运行python脚本来测试api时,所有调用都正常工作

我调用api,它以字符串形式返回3个参数:

"36",, '029', ‘973345’

然而,当我试图从django内部调用api并在前端显示时,我得到了错误:

Type Error 'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte 
下面是我的cython文件中用于调用c api(ccapi)的api的示例:

我从示例python脚本运行的示例非常简单:

import ccapilib
print ccapilib.ccapilib()
这将打印我传入的三个参数,并正确设置它们的值('36', '029', “973345”)

当我在django应用程序中尝试相同的操作时,会导致以下错误:

'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte
无论我是尝试用python打印对api的调用,还是从前端调用它以显示在模板中,都会发生此错误

如果有任何其他信息,你需要我不会有问题提供


谢谢。

你能给出异常发生的确切位置和周围的代码吗?我猜django总是假设字符串是utf8编码的。您需要检查Cython输出字符串中使用的编码。然后可能会先解码!或者您可以尝试编解码器。在cython模块内进行编码(返回的值为“utf-8”),然后再返回?不确定是“utf-8”还是“utf8”def process_视图(请求):打印ccapilib.ccapilib()。。。当我从django view进程中调用它时,这会中断。\n
ccapilib()
的签名到底是什么?它的回报是什么?
'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte