我在 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 的调用,还是从前端调用它以显示在模板中,都会发生此错误。
如果您需要任何其他信息,我将毫无问题地提供。
谢谢。