Python Unicode对象和C API(从pyunicode对象中检索char *)

发布于 2021-01-29 15:59:36

我目前将所有C ++引擎类都绑定到python,以实现游戏脚本编写目的。最新的挑战是,当您说要在脚本中创建一个变量时,例如

string = 'hello world'

这将成为一个PyUnicodeObject。接下来,我们要从绑定的C端函数在脚本中的此对象上调用函数。例如,以PrintToLog(string)为例,这个c函数就是这样

void PrintToLog( const char * thisString )
{
   //file IO stuff as expected
   myLog << thisString;
   //more stuff involving fileIO
}

因此,我的绑定需要从PyUnicodeObject中提取一个char
*,该字符将首先由python传递给我的通用函数处理程序,而后者又会将pyobjects提取并转换为适当的c端类型,并将其传递给我的函数。

我可以找到的唯一函数提取了wchar_t * …无论如何,都可以获得ascii表示,因为我们将仅使用ascii字符集。

编辑:我正在使用所有字符串都是unicode的Python 3.2

关注者
0
被浏览
44
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我相信您要查找的功能是PyUnicode_AsASCIIString。这将为您提供一个非Unicode(ASCII)python字符串。然后,您可以采用常规方法char*从中提取a 。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看