从大一上C语言就开始认识了Ascll编码,ascll码也算是我们最早所接触的编码

【1】Ascll码

Ascll码由三部分组成:

第一部分从00H到1FH共32个,一般用来通信或作为开工至之用,有的可以显示在屏幕上,有的则无法再屏幕上显示。

第二部分从20H到7FH共96个,除了32H的空格之外,其余的95个字符用来表示阿拉伯数字,英文字母大小写和底线,括号等其他符号。这里需要记一下日常经常用到的:0是048号,A是065号,a是097号。

第三部分从80H到0FFH共128个字符,一般称为扩充字符,zhe128个字符是由IBM指定的,并非标准的ASCLL码,用来表示框线,音标和其它欧洲非英语系的字符。

接下来附上百度找的一张Ascll码表:

【2】ANSI

首先要说的是在不同的系统下ANSI表示不同的编码值。为什么呢?

因为不同的国家和地区对ANCI编码指定了不同的标准,由此产生了比如GB2312,GBK,Big5,shift_jis等不同的编码标准,称这些使用1至4个字节来代表一个字符的各种字符延伸的编码方式为ANSI编码。而这些ANSI码之间是互不兼容的,因此会导致不同语言的文本中会出现乱码。

ANSI编码用的是0x00~0x7f范围的1个字节来表示一个英文字符,也就是说ANSI码仅在前126个与ASCLL码相同(所以ANSI可以理解为是Ascll码的一种扩展),其他超出此范围的0x80~0xFFFF用多个字节来表示一个字符,用来表示其他语言的其他字符(要表示不同国家那么多语言,这些编码肯定是不足够的,因此只能表示一部分).

如果你要解码一份文件(如果是ANSI编码文件的话),不仅要知道它是ANSI编码,还要知道它是哪个国家的,才能解码。

记事本默认以ANCI编码保存文本文档。(记事本有四种编码方式:UTF-8,ANSI,Unicode,Unicode big endian)

【3】Unicode(万国码)

由此,为了解决不同语言的编码乱码问题,出现了Unicode(UCS).

所以说Unicode是在ANSI之后出现的由国际组织设计,可以容纳全世界所有的语音文字的编码方案。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,来实现不同语言,不同国家直接对字符的转换和处理。

Unicode通常用两个字节来表示一个字符,(生僻字可能会用四个字节)原来ANSI里用一个字节来表示英文编码在Unicode里变成了用两个字节编码。

Unicode编码的缺点就是浪费空间,比如在ANSI前英文字符集里只用一个字节就可以表示,可是在Unicode编码中就需要用两个字节,造成了空间浪费(高字节位补0)

【4】UTF-8

       那Unicode编码也有缺点,这可如何是好?此时UTF-8编码就产生啦!!!

           UTF-8编码最大的特点就是可变长编码:它根据不同的字符来改变字节长度,比如ascll码范围时用一个字节表示(保留了ascll码的编码方式),Unicode中中文字符占两个字节,而在UTF-8中占3个字节,而且Unicode和UTF-8之间需要通过一系列的算法和规则来进行转换并非直接转换。

计算机内存中统一使用Unicode编码

数据传输的时候使用的是UTF-8编码方式

文件存储的时候由UTF-8转成Unicode编码放入内存,读取时有Unicode再转成UTF-8

网页使用的统一编码UTF-8编码

在这个时候小北同学就很好奇了,那如何解析一个中文文本文件嘞?中文那么多编码格式,计算机如何判断它用的是哪种编码方式写的嘞?

这个时候我发现了一个好东东!!!哈哈哈哈哈哈哈哈嗝

BOM,BOM就是byte order Mark ,一般呢为了方便解析中文文件,它的文件头都会加一个编码格式标识就是BOM,不同的编码方式对应的BOM是不同的。

比如:UTF-8是0xEF BB BF

UTF-16(BE):0xFE FF

UTF-16(LE):0xFF FE

上面的BE和LE表示它存储的时候用的是大端或者小端模式,指的是CPU处理多字节数的不同方式。

字符编码之Ascll编码,ANSI编码,Unicode编码,UTF-8编码 ,BOM相关推荐

  1. Ascll、Ansi、Unicode、UTF8

    Ascll.Ansi.Unicode.UTF8 在计算中,所有的东西都是0和1. 就看设计者规定这些0和1代表什么意义. 到底是一段声音,还是像素点拼合成的图片,或者很多图片和声音拼合的电影,程序,文 ...

  2. 【字符编码】 简洁理解ANSI,UTF8,Unicode,ASCII编码的差别

    目录 简略 说明 1.  ASCII和ANSI编码 2. UNICODE 4.  UTF-8 参考 简略 ASCII             1个字节=1个文字 ANSI                ...

  3. ANSI,Unicode,UTF-8网页编码的区别【转】

    1.ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte).也 ...

  4. VB 文件编码互换模块(支持 Ansi,UTF-8,Unicode(little endian),Unicode big endian)

    'VB 文件编码互换模块,支持对Ansi,UTF-8,Unicode(little endian),Unicode big endian编码之间进行转换. Option Explicit Privat ...

  5. ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解 1

    ASCII字符集编码     ASCII码是7位编码,编码范围是0x00-0x7F.ASCII字符集包括英文字母.阿拉伯数字和标点符号等字符.其中0x00-0x20和0x7F共33个控制字符.     ...

  6. 字符集、字符编码编码总结:ANSI、UNICODE、MBCS、ASCII等等

    目录 一.字符集与字符编码 二.字符集的发展 1. 单字节字符集(SBCS) 2. 多字节字符集(MBCS) 3. 宽字节字符集(Unicode) 三.UTF - Unicode/UCS Transf ...

  7. ANSI, UTF-8, Unicode, GBK, GB2312 字符编码小结

    这两天碰见一个Bug,涉及到字符编码,索性研究了下,整理出来,以便今后查阅. ASCII码,0~127,128个,这个就不用多说了,他是计算机文明的基石.但是这里面只有英文字母,其他国家如何把本国的文 ...

  8. unicode,ansi,utf-8,unicode big endian编码的区别

    为什么80%的码农都做不了架构师?>>>    随便说说字符集和编码 快下班时,爱问问题的小朋友Nico又问了一个问题: "sqlserver里面有char和nchar,那 ...

  9. java utf-8字符表_Java中的ASCII、Unicode和UTF-8字符编码集

    首先讲一下几种字符的编码方式: 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态 ...

最新文章

  1. 人工智能为什么用python_使用python实现人工智能的优势
  2. [转]将Ubuntu默认的邮件客户端Evolution替换为Thunderbird
  3. OC 实例变量(instance var)与属性(@property)的关系 isa指针
  4. OPA 18 - iTeardownMyAppFrame
  5. SpringBoot环境下QueryDSL-JPA的使用
  6. HTML二刺螈网址导航模板
  7. 用例图中三种关系详解(转)
  8. 台式计算机没有usb3.0,新装的win7没有usb驱动完美解决方法(支持usb3.0/usb3.1)
  9. Ansys Speos | 助力汽车按键开关设计与优化
  10. 坚果云下载的文件夹在哪_文件管理软件Zotero+坚果云配置之小白教程,与大家交流...
  11. kdays 游戏汉化教程[日记版本] 序章 接触
  12. python计算小数点后有几位_小学数学有哪些数学计算技巧?
  13. 微信点餐html5模板,【瑞蚁原创分享】12:springboot微信点餐之微信模板
  14. java接口如何有效防止恶意请求
  15. tomcat如何增大并发_tomcat最大并发连接数的修改方法
  16. Redis数据结构Hash应用场景-存储商品、购物车、淘宝短链接、分布式Session、用户注册、发微博功能
  17. 1.windows11开启wsl2并安装Ubuntu 20.04
  18. stremlit学习前骤
  19. 加密流量分类-论文6:Learning to Classify A Flow-Based Relation Network for Encrypted Traffic Classification
  20. 理解G1 Remember Set(RSet)

热门文章

  1. 策测解金:黄金突破箱体,别错过回调就是多
  2. 关于eLTE,你不知道的事
  3. 美地方法官裁决:苹果不得强迫开发者使用应用内支付
  4. SimpleDateFormat的使用
  5. 2023北京火力发电技术及设备展览会
  6. 第三部分第二节课全部
  7. 北大操作系统陈向群第八章知识点
  8. root操作不了怎么办,root用不了
  9. chrome 保存网页_如何在Chrome中保存网页
  10. MYSEE正式宣布启动OpenMysee