Способ преобразования Python2 Unicode в std :: string с помощью swig - PullRequest
0 голосов
/ 11 ноября 2019

# define SWIG_PYTHON_2_UNICODE не работает в python2, это файл .i, PyUnicode_FromString может отобразить строку std в unicode

%include <std_pair.i> 
%include <std_vector.i> 
%include <std_string.i> 
%template() std::pair<std::string,int>; 
%template(PairVector) std::vector<std::pair<std::string,int> >; 
%template(StringVector) std::vector<std::string>;

%begin %{
#define SWIG_PYTHON_2_UNICODE
%}

%{ 
#include "example.h" 

%} 
 %typemap(out) std::string %{
$result = PyUnicode_FromString($1.c_str());
%}

%include "example.h" 

Как преобразовать строку unicode python2 в c ++ std :: string в swig?

1 Ответ

0 голосов
/ 12 ноября 2019
 %include <std_pair.i> 
 %include <std_vector.i> 
 %include <std_wstring.i> 
 %template() std::pair<std::wstring,int>; 
 %template(PairVector) std::vector<std::pair<std::wstring,int> >; 
 %template(StringVector) std::vector<std::wstring>;

 %begin %{
 #define SWIG_PYTHON_2_UNICODE
 %}

 %{ 
    #include "example.h" 

 %} 


  %include "example.h" 

wstring работает

...