理解字符编码

1、可以这样理解,字符编码就是对于字符集合,每个字符设置一个id,第几个表示某个字符。
2、举例来说,有两个编码,编码A只有三个字符 甲a1,编码B只有六个字符 abcd12,他们的编码分别是:
甲[00] a[01] 1[10];a[000] b[001] c[010] d[011] 1[100] 2[101]
3、对于不同字符编码,同一个id对应不同的字符,如甲[00] 和 a[000],同一个字符对应的Id不同,如a[01] 和 a[000]
4、这里要区分,当成某种编码解释和转化为某种编码。
5、当成某种编码解释,也就是只看Id,存在两种情况:一是编码A有意义的字符,当成编码B来看,是一堆没有意义的字符,也就是乱码。而是,当成编码B来看,编码B中可能没有对应的Id,错误。
6、转化为某种编码,先看编码A的Id,找到对应的字符,再看这个字符在编码B中对应哪个Id,将前一个Id换成编码B中对应的Id。比如:
编码A [0110]-->对应a1-->从编码B中找到a1对应的Id-->Id替换,变成[000100],这里存在一个问题,编码A中的一个字符, 在编码B中没有对应的字符,这个时候出错。

时间: 2024-08-05 19:06:09

理解字符编码的相关文章

【字符编码】彻底理解字符编码

一.前言 在解决昨天的问题时,又引出了很多新的问题,如为什么要进行编码,这些编码的关系如何,如ASCII,IOS-8859-1,GB2312,GBK,Unicode之间的关系,笔者想要彻底理解字符编码背后的故事,遂进行了探索,具体笔记如下.如园友能读完本篇文章,我相信会解开很多疑惑. 二.字符编码 2.1 为何需要编码? 我们知道,所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)有0和1两种状态.当我们需要把字符'A'存入计算机时,应该对应哪种状态呢,存储时,我们可以将字符'A

【字符编码】彻底理解字符编码(转)

原文:http://www.cnblogs.com/leesf456/p/5317574.html 一.前言 在解决昨天的问题时,又引出了很多新的问题,如为什么要进行编码,这些编码的关系如何,如ASCII,IOS-8859-1,GB2312,GBK,Unicode之间的关系,笔者想要彻底理解字符编码背后的故事,遂进行了探索,具体笔记如下.如园友能读完本篇文章,我相信会解开很多疑惑. 二.字符编码 2.1 为何需要编码? 我们知道,所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)

一句话理解字符编码(Unicode ,UTF8,UTF16)

Unicode和ASCII码属于同一级别的,都是字符集,字符集规定从1到这个字符集的最大范围每个序号都各表示什么意思.比如ASCII字符集中序号65表示"A". 那接下来的UTF8和UTF16就相当于我们在计算机中怎么表示这个序号了.这就好比,通常情况下我们用十进制表示数字(1表示一个,2表示两个).但是有时候我们也会根据情况用二进制,八进制,十六进制表示. UTF8编码规则表示一个序号可能用一个字节/两个字节/三个字节来表示.UTF16编码规则表示一个序号只会用两个字节表示.其他的编

python之字符编码(四)

一.字符编码的使用: 1.文本编辑器 unicode----->encode-------->utf-8 utf-8-------->decode---------->unicode 补充: 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器 如果服务端encode的编码格式是utf-8, 客户端内存中收到的也是utf-8编码的结果. 2.文本编辑器nodpad++: 分析过程?什么是乱码 文件从内存刷到硬盘的操作简称存文件 文件从硬盘读到内存的操

【Python基础】字符编码ASCII-GBK-Unicode-UTF-8之间的关系

字符编码 由于计算机只识别0和1,为了使计算机能够支持文字和字母等符号,方便实用操作计算机 于是字符编码应运而生,旨在解决符号和人类语言与计算机0和1建立起一种对应关系 据说不理解字符编码可能是程序员一辈子的遗憾,拿出来单独总结一下 发展史: ASCII-->Unicode-->UTF-8 ASCII是最早期应用在美国方面的,建立了A-z和一批特殊符号,一共128种字符与二进制之间的对应关系 比如:小写字母w 十进制135 转换为二进制 10000111 空格 0 0 如果表示[空格][空格]

Python字符编码很难吗?今天一文带你深入!从此不再疑惑!

不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 encode.decode 函数翻来覆去的转换,有时试着试着问题就解决了,有时候怎么试都没辙,只有借用 Google 大神帮忙,但似乎很少去关心问题的本质是什么,下次遇到类似的问题重蹈覆辙,那么你有没有想过一次性彻底把 Python 字符编码给搞懂呢? 完全理解字符编码 与 Python 的渊源前,我们有

PYTHON 之 字符编码的区别与介绍

理解字符编码的历史与使用原因 1.计算机只能认0与1.2.通过0与1,二进制数,计算机能很容易识别出各种数字.3.为了能让计算机识别各种字符,美国人制定了ASCII码,能识别出127种字母与特殊字符,只需使用一个字节.3.因为ASCII码不支持中文,在1980设计出gb2312 ,收录了7445个汉字.4.到了1995年 设计出BGK1.0 收录了2万多个汉字.5.到了2000年,设置出GB18030 收录了2万7千多个汉字.6.到了不个不知道什么年份的时候,国际组织为了统一全世界的字符,设置出

2019 08 08 字符编码,文件操作

字符编码 一.计算机基础 cpu: 控制程序的运行(从内存中取出文本编辑器的数据读入内存) 内存: 运行程序(经cpu操作后,内存中含有文本编辑器的数据) 硬盘: 存储数据(文本编辑器) 二.文本编辑器存取文件的原理 ? 计算机只认识 0和1 ? 文本编辑器的作用: 读写数据,保存数据 打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失. 要想永久保存,需要点击保存按钮:编辑器把内存的数据刷到了硬盘上. 在我们编写一个py文件(没有执行)

Python2和3字符编码的区别

Python2和3字符编码的区别 一.字符编码应用之Pyhton 1.1执行Python程序的三个阶段 test.py文件内容以gbk格式保存的,内容为: 阶段一:启动Python解释器 阶段二:Python解释器此时就是一个文本编辑器,负责打开文件test.py,即从硬盘中读取test.py的内容到内存中 此时,Python解释器会读取test.py的第一行内容,#coding:utf-8或#-*-coding:utf-8-*-,以此决定以什么编码格式将代码读入内存,这一行就是设定Python