gpt4 book ai didi

c++ - 如何将 Django unicode 转换为 C++ std::string

转载 作者:行者123 更新时间:2023-11-28 03:31:39 25 4
gpt4 key购买 nike

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

现在我尝试在 Django 中运行这个框架。当我从表单“CharField”传递字符串时,出现此错误:

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

负责的代码在这里:

form = AnalyzeForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
s.setOutput(cd["output"])

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

s.setOutput("DatabaseOutput")

它工作正常。我也使用了 str(cd["output"]) 但在那之后没有任何反应。

我正在使用 Django 1.4.1 和 Python 2.7.3

最佳答案

您可以使用 encode 方法将 Unicode 字符串转换为字节字符串,然后再将其发送到需要字符串的 C++ 代码:

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

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

关于c++ - 如何将 Django unicode 转换为 C++ std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12357043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com