返回信息流看了一周,仍然很懵,有没有能把实际问题中出现的编码bug都能弄明白的大神呢~
这是一条镜像帖。来源:北邮人论坛 / python / #5663同步于 2015/3/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
编码问题好痛,ascii扩展码和gbk(ansi)编码如何区分~
henceman
2015/3/18镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
请先确定你用的是Python3。
如果你的源代码里有汉字,那么,如果你用的是Linux,不用做什么。如果你用的是Windows,请在源代码的第二行加上这一行:
# coding: gb18030
如果你用open()函数读文件,默认的文本编码是你系统的编码,也不用在意。
【 在 nuanyangyang 的大作中提到: 】
: 请先确定你用的是Python3。
: 如果你的源代码里有汉字,那么,如果你用的是Linux,不用做什么。如果你用的是Windows,请在源代码的第二行加上这一行:
: [code=python]
: ...................
暖神,你来了~!~
我用的是python2,起因就是对python2里的字符串编码问题感到迷惑,后来又延伸到计算机体系编码问题,能否麻烦你在百忙之中指点迷津下~
1.键盘问题,美式键盘和中文键盘是为了解决什么的,这种是操作系统内核键盘驱动的一部分么?
2 输入法问题,当敲击下键盘,数据流从键盘控制器->内核->输入法->窗口管理器->应用窗口->找到codepage页->找到对应字体,这个流程对么?
如果对的话,应用窗口根据什么找到codepage页?以中文windows系统,搜狗输入法,它输出的是gbk编码么?那在中文windows系统下,日文输入法如何实现或使用,那种火星文输入法怎么实现(codepage页是自己定义的么)
3 不论什么系统,是不是所有能带有编辑功能的窗口或应用都有相应的字符串转化函数?应用窗口如何知道输入法的编码方式?或者说输入法和应用窗口是谁给另一方提供了接口?
4 窗口作为标准输出和文件输出有没有区别,比如在python2中输出unicode到文件中需要指定编码方式,而输出到窗口就不用
数据流从一个程序到另一个程序,中间的编码方式变化是怎样传递的?
比如,我在python文本编辑器中输入中文汉字注释,在文件头加上#-*- encoding: UTF-8 -*-
,点击保存,中间过程发生了怎么变化?汉字从gbk变成了unicode再到utf8么?
再如,ascii扩展字符用什么输入法能打出来,如过和gbk编码汉字在同一个文件里,文本编译器能不能将这两种区别出来?
脑袋有些混乱,有些表述的不是很清楚,请暖神见谅,真的是对编码问题产生了疑惑和好奇,也查了下,没有对数据流很清楚的解答,一个过程中间发生了什么,觉得自己像个白痴
【 在 henceman 的大作中提到: 】
: 暖神,你来了~!~
: 我用的是python2,起因就是对python2里的字符串编码问题感到迷惑,后来又延伸到计算机体系编码问题,能否麻烦你在百忙之中指点迷津下~
: 1.键盘问题,美式键盘和中文键盘是为了解决什么的,这种是操作系统内核键盘驱动的一部分么?
: ...................
Python2的str和unicode本身就很混乱,主要是混淆字节和字符两个概念。还是用Python3吧,容易理解。
Windows是怎么做的我也说不清楚。