在Python的C扩展中,我可以使用Py_BuildValue()
将字符串转换成Python值,如下所示:Py_BuildValue("s", str)
。但是,如果字符串是wchar数组,则不能使用Py_BuildValue("s", str)
。在
我想我可以这样使用PyUnicode:
PyObject* pb=PyUnicode_FromUnicode( (const Py_UNICODE*)(str), wcslen(str) );
PyObject *val = Py_BuildValue("o", pb);
但是,它不起作用。如何将wchar字符串转换为Python值?在
我想你不需要把}结合起来。在
PyUnicode_FromUnicode
和{下面的
pb
已经是一个Python unicode对象。在使用
Py_BuildValue
来处理它是多余的,但它是无害的。 我认为您的问题是由格式不正确引起的o
。它应该是O
。在您还可以使用
^{pr2}$Py_BuildValue
将Unicode(UCS-2或UCS-4)数据的空终止缓冲区转换为Python Unicode对象。例如:
更多
相关问题 更多 >
编程相关推荐