我正在和一个将字符串作为wchar\t数组来处理的库交谈。我需要将它们转换成char数组,以便将它们交给Python(使用SWIG和Python的PyString_FromString函数)。显然不是所有的宽字符都可以转换成字符。根据wcstombs的文档,我应该能够做一些类似的事情
wcstombs(NULL, wideString, wcslen(wideString))
测试字符串中是否有不可转换的字符——如果有,则返回-1。但是,在我的测试用例中,它总是返回-1。以下是我的测试函数:
^{pr2}$产生的输出如下:
Generated 32 characters, nominal length 39, compare -1
Generated 16 characters, nominal length 20, compare -1
Generated 4 characters, nominal length 6, compare -1
你知道我做错什么了吗?在
另一方面,如果您知道一种将wchar_t*s直接转换为Python unicode字符串的方法,那就太好了。:)谢谢!在
显然,正如您所发现的,对输入数据进行零终止是至关重要的。在
关于最后一段,我将从wide转换为UTF8并调用PyUnicode_FromString。在
请注意,我假设您使用的是python2.x,在python3.x中可能都是不同的
相关问题 更多 >
编程相关推荐