判断自己的python是什么编码:python ucs-2与ucs-4编码方式判断
根本原因时python和某个你用的库编译时指定的UCS编码方式不对.
编译python时,可以通过指定--enable-unicode[=ucs[24]]来选择使用UCS2或者UCS4.
如果你的错误是undefined symbol: PyUnicodeUCS2_AsUTF8String,说明你的python编译时使用的是UCS4,反之依然.
解决方案两个:
1,重新编译python,
2,重新编译库.
选择一般是重新编译库.
如果使用的是./configure这样的编译方式,如果你的./configure --help没有unicode的选择,那么在./configure之后,
在config.h内增加
#define Py_UNICODE_SIZE 4
然后再make,make install之类的,就搞定拉.
原理如下:
在头文件/usr/include/python2.7/unicodeobject.h内:
#ifndef Py_UNICODE_WIDE
# define PyUnicode_AsUTF8String PyUnicodeUCS2_AsUTF8String
python2.7.11默认是使用UCS2.