![](/img/trans.png)
[英]How to convert std::string to LPCWSTR in C++ (Unicode)
[英]How to convert in Django unicode to C++ std::string
我在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)
负责的代码在这里:
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字符串,则编码不会改变它; 如果它包含二进制数据,您将获得异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.