#define SWIG_PYTHON_2_UNICODE在python2中不起作用,这是文件.i,PyUnicode_FromString可以将标准字符串映射为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"
如何在swig中将python2 unicode字符串转换为c ++ std :: string?
%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起作用