我在ubuntu 11.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调用:
cimport ccapi
def get_params(self):
cdef char municipalityCode_pt[128]
cdef char schoolCode_pt[128]
cdef char transitDistrictCode_pt[128]
return ccapi.get_params(municipalityCode_pt, schoolCode_pt,transitDistrictCode_pt)
我从示例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的调用,或者如果我从前端调用它来显示在模板中,则会发生此错误。
如果您需要任何其他信息,我将毫无问题地提供。
感谢。