python2.x 脚本加上 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 后windows 命令提示符下输出中文字符串还会出现乱码。
解决方法需要先使用 decode("utf-8") 转换成 utf-8 编码,然后使用 encode("gbk") 转换成 gbk 编码,才能在 windows 命令提示符下正常输出中文。
例如:
>>># -*- coding: UTF-8 -*-
>>> s="我是中文 "
>>>print s.decode("utf-8").encode("gbk")
原因是 windows 命令提示符的显示编码为 gbk 编码。
在命令提示符下使用 chcp 查询编码。
"活动代码页:936" 代表命令提示符的编码为 "gbk"
"活动代码页:65001" 代表命令提示符的编码为 "utf-8"
在 Eclipse 中调试 python 例子时候,提示:
SyntaxError:(unicode error)'utf-8' codec can't decode byte 0xb4 in position 0:invalid start byte,
基本知识:在 python 中默认的编码格式是 utf-8。所以怎么会报不能按 utf-8 来解码嘞?一头雾水啊。
问题的解决:
1、Eclipse 中 Window->Preferences:
最后在 Eclipse 安装目录中的 eclipse.ini 文件最后加上 -Dfile.encoding=UTF-8 就行了,最终写入文件的中文就不会出现乱码的问题了。
2、使用 notepad++ 打开 test.py 发现文件存储的格式是 ANSI。
只要将保存文件的格式换成 UTF-8 就好了。