求助~~Python的字符编码转换问题

jinjiajie 2010-04-07 02:51:56
我在一个python脚本中的一个中文字符串 str = "测" 想传入c++后处理 ,需要将他转成类似 std::wstring = L"测";(BUFF中有一个字节为 27979)同样的字符串buff,但是不论我如何编码,在python调用接口中用PyString_Astring( )后获得的字符串的编码都为3个字节的 230,181,139 .-.-这个该如何处理啊?表述上有点问题,请见谅
...全文
180 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Doeld 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jinjiajie 的回复:]

已經搞定了,謝謝各位
[/Quote]

搞定了也要负责任地说一下怎么搞定的吧?有头没尾的撂下这么句话算什么啊?
dongym2009 2010-04-20
  • 打赏
  • 举报
回复
对,应该把解决方案描述一下
jinjiajie 2010-04-17
  • 打赏
  • 举报
回复
已經搞定了,謝謝各位
amu9900 2010-04-15
  • 打赏
  • 举报
回复
上面的缩进有问题
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'
amu9900 2010-04-15
  • 打赏
  • 举报
回复
把你要传的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'
boys2002 2010-04-10
  • 打赏
  • 举报
回复
s = "hello byte string"
u = unicode( s )
backToBytes = u.encode()
2010-04-09
  • 打赏
  • 举报
回复
海楓 2010-04-09
  • 打赏
  • 举报
回复
"测"的utf-8編碼值為'\xe6\xb5\x8b',也就是230,181,139的十六進制。
使用python處理漢字字符集編碼是件輕松的事。
青山*锦城 2010-04-08
  • 打赏
  • 举报
回复
帮顶,学习,编码的转化貌似很麻烦的样子
ziank0111 2010-04-08
  • 打赏
  • 举报
回复
str = u"测"
fibbery 2010-04-07
  • 打赏
  • 举报
回复
L"测",是UNICODE代码;在Python中如果是3个字节,那可能是UTF-8。你需要做UNICODE到UTF-8的转换。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧