python windows linux 编码问题?

ying_593254979 2013-11-12 10:58:52
本人在linux写好的python代码,用utf-8。拿到windows下运行。
在调用print 和 eval提示gbk编码错误。
linux使用的locale是utf-8。windows使用的locale是gbk。
使用的编码都是utf-8。
问一下怎样在winodws下,eval使用utf-8解析字符串???????
...全文
209 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2013-11-13
  • 打赏
  • 举报
回复
引用 7 楼 ying_593254979 的回复:
用的python版本为3.2
py3k是unicode字串,输出输入会自动转换,eval时应该就不关编码的事,是不是上个简单代码说明问题...
ying_593254979 2013-11-13
  • 打赏
  • 举报
回复
用的python版本为3.2
ying_593254979 2013-11-13
  • 打赏
  • 举报
回复
指定编码。不过没什么用处。 经过测试 windows eval解析字符串用的gbk编码。linux eval解析字符串用的是utf-8。
ying_593254979 2013-11-13
  • 打赏
  • 举报
回复
明白了。我用无BOM测试utf-8也通过了。
angel_su 2013-11-13
  • 打赏
  • 举报
回复
我这测试没问题... Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:06:53) [MSC v.1600 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> f = open('d:/test.txt','r',encoding='utf-8') >>> s = f.read() >>> v = eval(s) >>> v {'hello world', '测试'} >>>
ImN1 2013-11-13
  • 打赏
  • 举报
回复
应该是bom的问题
ying_593254979 2013-11-13
  • 打赏
  • 举报
回复
test.txt 内容为{"测试","hello world"} fd = open('test.txt','r',encoding='utf-8') str = fd.read(200) value = eval(str) print(value) 提示错误: value = eval(str) File "<string>", line 1 {"测试","hello world"} ^ SyntaxError: invalid character in identifier 用gbk的话,没错误。
ImN1 2013-11-12
  • 打赏
  • 举报
回复
如果是在cmd运行的cli,不需要改 打开cmd,先执行命令chcp 65001回车,再执行py就行
ImN1 2013-11-12
  • 打赏
  • 举报
回复
文件头有没有声明编码?
ImN1 2013-11-12
  • 打赏
  • 举报
回复
用到eval,估计有不定语句从外部读入,读入的编码如何,有没有指定?
angel_su 2013-11-12
  • 打赏
  • 举报
回复
试试改用python3...
ying_593254979 2013-11-12
  • 打赏
  • 举报
回复
貌似不行,感觉python unicode没什么用。

37,721

社区成员

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

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