IronPython使用str(object)转换对象遇到中文出错如何处理

NemoBio 2014-02-11 11:01:45
IronPython脚本中使用str()函数将对象转换为字符串显示。但是遇到中文时出现如下错误:
>>import sys
>>str('您好')
'ascii' codec can't decode byte 0 in position 0: ordinal not in range
我参照网络上的将字符集修改为如下:
>>import sys
>>reload(sys)
>>sys.setdefaultencoding('utf8')
>>str('您好')
SystemError:没有可用于编码0的数据
应该怎么写才能正确转换?

...全文
405 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
NemoBio 2014-02-11
  • 打赏
  • 举报
回复
没人遇到过将对象转换成字符串吗?
NemoBio 2014-02-11
  • 打赏
  • 举报
回复
我在IronPython交互控制台中执行如下语句: >>>import sys >>>reload(sys) >>>sys.setdefaultencoding('utf-8') >>>str('您好') 不是将字符集转换成UTF-8了吗?哪里还有需要设置的?
ImN1 2014-02-11
  • 打赏
  • 举报
回复
我的意思是你弄清楚你的运行环境的编码再输入 u'您好' 或者 '您好' 要输入、输出、环境三者编码保持一致才行
NemoBio 2014-02-11
  • 打赏
  • 举报
回复
我是用c#里集成IronPython的,需要将c#中的对象转换成字符串显示。所以不适合写出脚本文件来执行
ImN1 2014-02-11
  • 打赏
  • 举报
回复
不太熟py2,但我觉得这是你的运行环境的编码问题造成的 你试试写成脚本run一次

37,719

社区成员

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

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