py3 是直接用,都统一到 unicode上了,感觉不是你声明的问题,而是你代码里转码的问题 不过就算是声明,好像你的也有点问题 我一般都用 # coding: utf-8 玩python你必须弄明白这3件事: 1. 你用的IDE或是编辑器,是用什么编码保存py源程序文件的???因为源程序保存格式必须要和声明相一致!! 如果这个你都没弄明白,就不要说你转码有问题,光声明而用其它编码格式保存源码是不可能对的 2. 在转码时你要清楚,你的源变量是什么编码,要转到什么编码??! 如果这点你都不知道,那你怎么能肯定你 程序逻辑处理的正确? 比如说,你变量是GBK要转到UTF-8,正确的路径是 GBK->Unicode->UTF-8,也就是变量先解码成unicode,再 编码到UTF-8 这里说的是py2的例子,py3没有这么麻烦都统一了,不过在最终你业务使用时,你必须还是要转 到和业务需求一样的编码中去!! 3. 你是用GBK使用原编码了,但是你是否知道那些py的字符处理函数会在处理完后把你的编码给改成unicode了? 这些你都知道么??
已经在文件开头使用了 #-*-coding: utf-8 -*- #encoding=utf-8 但是还会报错 UnicodeEncodeError: 'ascii' codec can't encode characters 说明utf-8没有使用成功,怎么解决?
import sys reload(sys) sys.setdefaultencoding('utf8') 在文件的开头加上这三句
37,721
社区成员
34,239
社区内容
加载中
试试用AI创作助手写篇文章吧