测试wchar_t*的可转换字符

2024-03-29 11:02:23 发布

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

我正在和一个将字符串作为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字符串的方法,那就太好了。:)谢谢!在


Tags: 字符串数组字符lengthgeneratedswigcomparecharacters
1条回答
网友
1楼 · 发布于 2024-03-29 11:02:23

显然,正如您所发现的,对输入数据进行零终止是至关重要的。在

关于最后一段,我将从wide转换为UTF8并调用PyUnicode_FromString。在

请注意,我假设您使用的是python2.x,在python3.x中可能都是不同的

相关问题 更多 >