博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正确理解计算机编码
阅读量:6233 次
发布时间:2019-06-21

本文共 1045 字,大约阅读时间需要 3 分钟。

编码是什么?

  由于计算机只能识别'0101'这样的二进制,所以需要一种机制将人类使用的文字转化为二进制被计算机识别。这个机制就是编码
换句话说,其实我们肉眼看到的文字从来就没有真正存在过,都是一堆一堆的编码存在的。包括存在在硬盘上的代码也是一堆0101的编码

内存与硬盘的编码有什么不同?
  内存中统一采用unicode,因为unicode是全语言码,通过牺牲空间为代价来换取可以转换成任意编码(不乱码),
  硬盘采用各种编码,一般为utf-8和gbk,不用Unicode那是因为使用Unicode表示英文时过于浪费空间。
注意:软件代码是存放于硬盘的,而运行软件是要将软件加载到内存的。由硬盘编码转换为Unicode
还有:虽说现在正常的电脑内存都是unicode编码,但是还是存在很多地方或系统、应用软件仍然会采用各种各样的编码,这是历史遗留问题。

GBK编码是如何做到存储中英文的?
  gbk存英文1个byte,存中文2个byte
gbk会在每个bytes,即8位bit的第一个位作为标志位,标志位为1则表示是中文字符,如果标志位为0则表示为英文字符

python的默认编码是什么?
  #coding:utf-8,来决定以什么编码格式来读入内存。换句话说,也决定了以什么编码格式存入硬盘
  python2中默认使用ascii,python3中默认使用utf-8
额外知识:python的字符串编码为什么经常出问题?
  因为python在代码方面都是英文,所以不管是ascii编码还是utf8都可以处理,不需要考虑。
  但唯有字符串可能出现中文,总所周知ASCII是不能处理中文的

python执行时是如何处理字符串的?
  
python中有两类字符串,unicode和str
但是python3中将str直接存成unicode,我们定义一个str,无需加u前缀,就是一个unicode
注意:Unicode类型只能encode,不能decode 
在python2中的执行流程
当python解释器执行到产生字符串的代码时(例如x='上'),会申请新的内存地址,然后将'上'编码成文件开头指定的编码格式存放到该内存空间中。
当python解释器执行到产生字符串的代码时(例如s=u'林'),会申请新的内存地址,然后将'林'以unicode的格式存放到新的内存空间中,

转载于:https://www.cnblogs.com/ziyide/p/9095594.html

你可能感兴趣的文章
实现基于LNMP 的电子商务网站
查看>>
window.open网页打印页头页尾为空,支持浏览器IE8
查看>>
shell 命令中变量与从定向的运用...
查看>>
福昕阅读器曝多个安全漏洞 可导致远程任意代码执行
查看>>
如何区分混合云,私有云,公有云
查看>>
MongoDB 启动多实例 和 MongoDB创建删除、备份、复制
查看>>
虚拟化技术介绍
查看>>
如何恢复win7因为永久删除文件的资料
查看>>
Confluence 6 删除和归档空间
查看>>
Confluence 6 创建一个空间
查看>>
光纤涂覆机在科研及工程实践中详细应用步骤(图文)
查看>>
App软件的类型
查看>>
指标和事件之间有什么区别?
查看>>
centos内核socket优化
查看>>
怎样以程序员的方式来用百度呢?
查看>>
centos7搭建docker私有仓库
查看>>
TCP三次握手四次挥手详解
查看>>
ionic中$cordovaInAppBrowser下载文件
查看>>
AJPFX关于多态中的动态绑定和静态绑定的总结
查看>>
AJPFX总结java开发常用类(包装,数字处理集合等)(三)
查看>>