PyRun_SimpleString未能输入特殊字符

时间:2019-05-09 07:13:16

标签: c++ python-3.x visual-c++ python-c-api

我正在尝试在C ++中嵌入Python的基础知识,当我运行此代码时出现错误 “ SyntaxError:(unicode错误)'utf-8'编解码器无法解码位置10的字节0xf4 :“无效的连续字节”。我无法找出问题所在。我在pycharm上将此txt编码,效果很好,但是当我尝试将其嵌入C ++时却无法正常工作。在此先感谢您的帮助

<button onClick={() => void setVisible(true)}>Click to See</button>

如果我只做

PyObject* pInt;

    Py_Initialize();

    PyRun_SimpleString("txt = u\"flag_for_Côte_d’Ivoire\"\nx = txt.encode()\nprint(x)");

    Py_Finalize();

    printf("\nPress any key to exit...\n");
    if(!_getch()) _getch();
    return 0;

它也失败了。我正在使用的Python版本是Python 3.7.3,并且在Windows VS 2008上

1 个答案:

答案 0 :(得分:0)

在发送字符串converted string to UTF8 and passed to Pyrun_simplestring()之前有效。因此,如果您使用的是旧版VS,请按照上述说明进行操作,如果您使用的是新VS,则需要在Python.h

之前添加“ #define PY_SSIZE_T_CLEAN”。

注意:-此解决方案适用于使用Python 3的人们