字符编码
来源:互联网 发布:@徐老师淘宝店网址 编辑:程序博客网 时间:2024/06/05 03:27
计算机要想工作必须通电,也就是说‘电’驱使计算机干活,而‘电’的特性,就是高低电平(高低平即二进制数1,低电平即二进制数0),也就是说计算机只认识数字
编程的目的是让计算机干活,而编程的结果说白了只是一堆字符,也就是说我们编程最终要实现的是:一堆字符驱动计算机干活
所以必须经过一个过程:
字符--------(翻译过程)------->数字
这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码。
=================================================================
流行的字符编码:ASCⅡ、GBK、unicode、UTF-8
ASCII:一个Bytes代表一个字符(英文字符/键盘上的所有其他字符),1Bytes=8bit,8bit可以表示0-2**8-1种变化,即可以表示256个字符。
GBK:2Bytes代表一个字符。
unicode:统一用2Bytes代表一个字符, 2**16-1=65535,可代表6万多个字符,因而兼容万国语言。优点是字符->数字的转换速度快,缺点是占用空间大
UTF-8:对英文字符只用1Bytes表示,对中文字符用3Bytes。精准,对不同的字符用不同的长度表示,优点是节省空间,缺点是:字符->数字的转换速度慢,因为每次都需要计算出字符需要多长的Bytes才能够准确表示。
内存中使用的编码是unicode,用空间换时间(程序都需要加载到内存才能运行,因而内存应该是尽可能的保证快)
硬盘中或者网络传输用utf-8,网络I/O延迟或磁盘I/O延迟要远大与utf-8的转换延迟,而且I/O应该是尽可能地节省带宽,保证数据传输的稳定性
=================================================================
文件从内存刷到硬盘的操作简称存文件
文件从硬盘读到内存的操作简称读文件
无论是何种编辑器,要防止文件出现乱码(请一定注意,存放一段代码的文件也仅仅只是一个普通文件而已,此处指的是文件没有执行前,我们打开文件时出现的乱码)
核心法则就是,文件以什么编码保存的,就以什么编码方式打开。
=================================================================
读取代码,并执行中的编码问题
内存的编码使用unicode,不代表内存中全是unicode形式的二进制,在程序执行前内存中全是unicode形式的二进制,但是程序执行时,比如说进行变量赋值,会申请新的内存空间,我们可以在这里存储的可以指定任何编码形式。
代码如下:
x='sda'.encode('utf-8')在这里我们就指定了内存以'utf-8'的编码形式存储字符串'sda'
- 字符编码
- 字符编码
- 字符编码
- 字符 编码
- 字符编码
- 字符编码
- 字符编码
- 字符编码
- 字符编码
- 编码&&字符
- 字符编码
- 字符编码
- 字符编码
- 字符编码
- 字符编码
- 字符编码
- 字符编码
- 字符编码
- 领域驱动设计系列文章(3)——有选择性的使用领域驱动设计
- Mac OS 设置 alias
- Android输入法-输入框随着输入法移动,但是底部控件不会被顶上去
- git学习------>git-rev-parse命令初识
- WeZRender:微信小程序Canvas增强组件
- 字符编码
- javascript 刷新和跳转页面的集中方法
- LNMP一键环境彻底删除绑定域名及网站文件夹/文件的过程
- Android中创建ImageView对象
- MDK(Keil)中文乱码
- 解决SendTo拒绝访问
- 为什么eclipse启动tomcat后项目无法访问而通过startup.bat启动后却能访问
- 部署环境抛异常 严重: IOException while loading persisted sessions: java.io.EOFException
- Android 背景透明度设置总结