最近遇到一个几乎每个人会遇到的事情,就是编码的问题。
网上很多事使用
“# coding:utf-8 ”
的解决方案,但是这个方案我始终解决不了我的问题。
首先我使用上述的代码。但是在同个平台下不同的编辑器下,运行的结果也是不同的。
1)python自带ide的获取用户输入并转换成unicode时使用encoding('gb2312'),正常,但是使用encoding('UTF-8')时输入变成ASCII。
2)同样是获取用户输入并转换为unicode时,在cmd下运行时无论是提示字符串还是输入之后,就会报错,改变coding:gbk,提示正常,输入转换正常。
3)同样的功能,在PyCharm,必须使用UTF-8才能正常。
4)同样的功能,在linux,必须使用UTF-8编码才能正常运行。
之前,由于只实验过python自带的IDE和linux下的情况,使用了如下的解决方案:
IsSystems = sys.platform if IsSystems == "win32": return '\'gb2312\'' else: return '\'UTF-8\''
但是还是不能解决不同的编辑器下的编码问题。请问这样的问题怎么解决呢?
当在使用不同的终端的时候,我们先从unicode说起,以‘知乎’为例,‘知乎’的unicode字符编码为u'u77e5u4e4e'。
当处于win上的cmd上的时候,是如下情况:
当然在linux上的情况,题主可以重新再试一试。
所有文件存成 UTF-8
用 GBK 写简直是耍流氓
“# coding:utf-8 ” 只是告诉python解释器以什么样的编码方式去运行你的程序,但你的程序本身是否是utf-8编码的跟这个东西一点关系没有,需要自己设置。在pycharm里可以如下设置
在windows-中文版上写Python就要做好与编码斗争的准备
我的经验在这里http://segmentfault.com/a/1190000004018799
试试这个