求助~~Python的字符编码转换问题
我在一个python脚本中的一个中文字符串 str = "测" 想传入c++后处理 ,需要将他转成类似 std::wstring = L"测";(BUFF中有一个字节为 27979)同样的字符串buff,但是不论我如何编码,在python调用接口中用PyString_Astring( )后获得的字符串的编码都为3个字节的 230,181,139 .-.-这个该如何处理啊?表述上有点问题,请见谅
[解决办法]
L"测",是UNICODE代码;在Python中如果是3个字节,那可能是UTF-8。你需要做UNICODE到UTF-8的转换。
[解决办法]
把你要传的str转换成unicode再传
方法:
def to_unicode(text):
if isinstance(text,unicode):
return text
text = str(text)
try:
return text.decode('utf-8')
except UnicodeError:
try:
return text.decode('gb18030')
except UnicodeError:
return u'UnicodeError'