如何在Django Unicode转换为C++ STD::字符串

2024-10-04 15:25:17 发布

您现在位置:Python中文网/ 问答频道 /正文

<>我在DJANGO中开发了一个带有WWW接口的C++应用程序。 到目前为止,我在C++中有工作框架Boost.Python在Linux中编译为共享对象的包装器。在

现在我尝试在Django中运行这个框架。当我从“CharField”形式传递字符串时,会出现以下错误:

Python argument types in
CoreSystem.setOutput(CoreSystem, unicode)
did not match C++ signature:
setOutput(CoreSystem {lvalue}, std::string)

代码如下:

^{pr2}$

其中s是这个CoreSystem对象。如果我这样输入:

s.setOutput("DatabaseOutput")

它工作得很好。我还使用了str(cd[“output”]),但之后什么都没有发生。在

我使用的是django1.4.1和python2.7.3


Tags: 对象django字符串框架应用程序linuxwww错误
1条回答
网友
1楼 · 发布于 2024-10-04 15:25:17

可以使用^ {CD1>}方法将Unicode字符串转换为字节字符串,然后将其发送到期望字符串的C++代码:

s.setOutput(cd["output"].encode("utf-8"))

UTF-8编码是Unicode字符串的合理默认值。如果cd["output"]已经是一个ASCII字符串,编码将不会更改它;如果它包含二进制数据,您将得到一个异常。在

相关问题 更多 >

    热门问题