乱码问题!Eclipse 的控制台console必须用GBK编码。【转载】
Eclipse 的控制台必须用GBK编码。所以条件1和条件4必须同时满足否则运行的还是乱码。才能保证不是乱码。
条件1,Window
这样定义的是整个工作区间的编码。
这样就把整个工作空间的编码格式定死了,但是如果某一个工程用的是不同的编码格式的话这样单独再解决。如下:
条件2,工程上右键
这样就把整个工程的编码格式定死了,但是如果某一个文件用的是不同的编码格式的话这样单独再解决。如下:
条件3,在某个文件上右键|
这里要说的是文件的实际编码格式优先用的是:第3个,其次再用2,最后先用1。有时候是123,必须满足条件。无论怎样这几种编码格式试一试就全知道了。
条件4,还有运行时编码设置如下:菜单:Run Configuration
这样保证了工作空间和工程代码编程方式和工程里的单独文件的编码格式的不冲突。
/
关于编辑环境编码
首先要确保eclipse编辑器环境的编码为utf8,这个是大前提;其次如果py文件中含有中文字符的话,需要在py文件中对编码进行声明。
1. 修改eclipse编辑器编码
a) window->preferences->general->editors->text editors->spelling->encoding->UTF-8
b) window->preferences->workspace->text file encoding->UTF-8
c) 打开eclipse安装目录->eclipse.ini,末行加上”-Dfile.encoding=UTF-8”
2. 修改python文件编码声明
在py文件首行加上#coding=utf-8,一定要在首行才可以
关于网页字符编码
完成以上两点,对本地中文字符处理没有问题了。但是有时我们需要处理网页上的中文字符,比如读取网页、对网页内容进行抓取,那么仅仅做到上面两点是不够了。还需要用到decode和encode
decode与encode 是一对相反的方法。decode是解码,比如网页采用的是gb2312编码格式,那么通过read()方法读取页面内容之后,使用str.decode(‘gb2312′)就是将页面内容解码为unicode编码;encode正好相反,它是将unicode编码为指定的格式,如果之前已经通过decode解码为unicode,str.encode(‘utf8′)即将str编码为utf8格式。
所以自然我们就有了在eclipse中正确显示网页内容的方法。比如网页采用的gb2312编格式,eclipse环境已经调整为utf8编码,如果直接read()出来,在eclipse中显示的是乱码;如果在read()之后加一道工序,显示就正常了,如下:
Eclipse+pydev2.2+python2.7 的设置
代码如下 | 复制代码 |
|
打开eclipse安装目录->eclipse.ini,末行加上”-Dfile.encoding=UTF-8”
文件编码
py文件记得保存成UTF-8,文件首行加上”#coding=utf-8”
run时设置
代码如下 | 复制代码 |
run-->run configurations->python run->Common-> Encoding ->UTF-8 |
这样就解决了中文乱码的问题
最详细解答:http://blog.csdn.net/samxx8/article/details/6286407