我正在从事游戏项目。我使用python 2.7.2编写脚本。我的应用程序在非Unicode路径下可以正常工作。但是它不能使用Unicode路径加载脚本
boost::python::import(import_path.c_str());

我试过这个例子
5.3。纯嵌入http://docs.python.org/extending/embedding.html#embedding-python-in-c

它也不能处理unicode路径。我将python链接为dll。
请向我解释如何处理这样的路径。

最佳答案

boost::python::import需要一个std::string,因此import_path可能会丢失某些字符。

您必须在多个平台上工作吗?在Windows上,您可以调用GetShortPathName检索8.3文件名,并使用该文件名加载dll。

您可以进行快速测试:

  • 将扩展名重命名为“JaiDéjàTestéÇaEtJaiDétestéÇa.pyd”。
  • 在命令行中,键入dir /x *.pyd以获取短文件名(我的计算机上为JAIDJT〜1.PYD)
  • 使用短名称加载您的扩展。

  • +上面的文件名,如果法语为“我已经测试过,但我不喜欢它”。这是押韵的韵律,使它无法处理Unicode;)

    关于c++ - Boost-Python:使用路径中的Unicode字符加载python模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9099439/

    10-10 11:04
    查看更多