2

我在 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 的调用,还是从前端调用它以显示在模板中,都会发生此错误。

如果您需要任何其他信息,我将毫无问题地提供。

谢谢。

4

0 回答 0