首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UCS-4的Python的Swig绑定

使用UCS-4的Python的Swig绑定
EN

Stack Overflow用户
提问于 2011-08-17 18:00:18
回答 1查看 414关注 0票数 4

有没有人知道有没有办法让SWIG将字符串编码为Python的UCS-4?SWIG文档指出,使用类型映射可以做到这一点,但没有提供任何其他细节或示例。

对于上下文,我正在使用一组Python脚本扩展Blender 3D软件。我们需要将这些脚本与各种机器人软件接口,我们使用SWIG编译Python库来实现这一点。Blender使用自己的Python 3.2和-- with -wide-unicode选项进行了预编译,因此它使用UCS-4 unicode字符串。然而,默认的SWIG将字符串编码为UCS-2,因此当我与Blender接口时,我总是会得到这样的错误:"undefined symbol: PyUnicodeUCS2_*“。

EN

回答 1

Stack Overflow用户

发布于 2012-01-09 15:42:52

这是来自SWIG文档的,也许你已经看过了:

目前,SWIG为

和宽字符字符串(C wchar_t类型)提供了有限的支持。一些语言为wchar_t提供了类型映射,但请记住,这些类型映射可能不能跨不同的操作系统移植。这是一个微妙的话题,许多程序员都很难理解,而且在不同的语言中没有以一致的方式实现。对于那些提供Unicode支持的脚本语言,Unicode字符串通常以8位表示形式提供,例如可以映射到char *类型的UTF-8 (在这种情况下,SWIG界面可能会工作)。如果您包装的程序使用Unicode,则不能保证目标语言中的Unicode字符将使用相同的内部表示(例如,UCS-2与UCS-4)。您可能需要编写一些特殊的转换函数。

因此,听起来您应该将它映射到char*,然后弄清楚如何在必要时手动转换它。听起来一开始就很混乱。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7090957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档