http://www.oschina.net/question/222809_86901(以前的问题在这里)
后来自己用在输出的结果变量后面加入“decode(''unicode-escape').encode(''utf-8)"解决。
如
#coding=utf8 text="测试" #这里的变量必须是str类型 print text.decode('unicode-escape').encode(''utf-8)
1.用tornando框架想写一个Blog程序,但就卡在了输出的地方。
返回的都是"unicode"字符集的编码。
在使用tornado自带的database模块里面SQL返回的数据是list格式的,
如果把其str化在编码解码后,运行还是会报错。
2.网上很多朋友说要把MYSQL的默认字符集更改一下,新版本中的MYSQL貌似已经是默认的“UTF8”字符集,
只是在终端输出的时候,会有“乱码”,更改一下mysql的字符即可解决,这只限于MYSQL控制台。
3.上面的“unicode-escape“这个解码我还是一知半解,望解释一下。
在win开发的pythoner可否有什么技巧可以提供一下呢?
感谢@xwz 兄之前提供的答案,但我自己还是没有决解。
我以前也遇到过让人绝望的编码问题,总结了一下:
1.在程序中无论何时都使用unicode处理字符串,如果是Python2.X给自己的字符串前加一个'u',然后尽情地使用unicode。(tornado是不是默认unicode,我不知道,如果是果断使用unicode处理)
2.可以直接将unicode输出到IDLE或cmd.exe,系统会自动转换为gbk输出(前提是你系统的代码页是cp936或gbk)。
3.保存文本文件时,将unicode转换为utf-8存入,读取时,将utf-8转换为unicode。写入数据库也要encode成utf-8,读取时utf-8要decode成unicode处理。
4.至于linux下,我还没有试过,改天测试一下。
另外可以参考这篇文章: http://my.oschina.net/apoptosis/blog/119187
感谢你的回复,我已经解决了。什么都不用改,tornaodo使用的是unicode编码,只是在页面输出的时候在文件头"<metacharset="utf-8"/>"输出即可,在sublimetext2里面使用返回的是utf8编码,所以是无法正确现实的,在页面输出可以,编码解决了,后面的更痛苦,呵呵。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。