返回信息流关于注释coding:utf-8,我的理解是它指定了字符串的编码格式,尤其是中文,而setdefaultencoding指定了默认的解码格式,例如unicode(),为什么这两个不能统一起来,否则两个格式不一致就会乱码,所以不进行统一的原因是啥?
还有一个就是文件的保存格式,保存格式和coding指定格式不一致同样出乱码,想请大神详细解释一下其中编码的转换过程,不胜感激!
这是一条镜像帖。来源:北邮人论坛 / python / #17427同步于 2017/2/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
coding:utf-8 和 setdefaultencoding的困惑
jadfi
2017/2/27镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
为什么解释器读到code注释的时候不直接调用setdefaultencoding,这样就统一了啊
【 在 nuanyangyang 的大作中提到: 】
: 不同的系统的默认编码格式不一样,但源代码只有一份。
因为那是不对的。系统编码不一定和源代码编码一样。系统编码是系统规定的,源代码编码是程序员的习惯。
【 在 jadfi 的大作中提到: 】
: 为什么解释器读到code注释的时候不直接调用setdefaultencoding,这样就统一了啊
就好像我用utf8的编码写了代码,但处理的是gbk的数据(比如读取了一个gbk编码的文本文件)。
那么coding就要设置utf8;setdefaultencoding就要设置gbk。
但是,我个人习惯是统一都用utf8,然后根据把不同编码的数据都转成utf8
【 在 jadfi 的大作中提到: 】
: 为什么解释器读到code注释的时候不直接调用setdefaultencoding,这样就统一了啊
不,不要setdefaultencoding。
如果你知道那个文本文件的编码,就用open函数的encoding参数。
不用转换。Python内部使用unicode code point来表示字符。
【 在 forienlauo 的大作中提到: 】
: 就好像我用utf8的编码写了代码,但处理的是gbk的数据(比如读取了一个gbk编码的文本文件)。
: 那么coding就要设置utf8;setdefaultencoding就要设置gbk。
: 但是,我个人习惯是统一都用utf8,然后根据把不同编码的数据都转成utf8
: ...................
咦,,,我再去看看,,我似乎是做了多余的事情
【 在 nuanyangyang 的大作中提到: 】
: 不,不要setdefaultencoding。
: 如果你知道那个文本文件的编码,就用open函数的encoding参数。
: 不用转换。Python内部使用unicode code point来表示字符。
: ...................