各种编码格式介绍

编码格式太多了,这里尽量的介绍下各种常见的编码格式。
另外,因为许多资料是我自己上网查的,也有自己的总结,所以不一定正确,如果发现有错误,麻烦指出,我会修改的。

一.ANSI

  • 01

    这里,我将ANSI作为一个大项。根据我自己的理解,ANSI并不是一种具体的编码,而是一种字符代码。比如:ASCII、GB2312、GBK、GB18030等都属于ANSI的范畴。不过这样说也不准确,根据我查阅的资料来看,ASCII是早于ANSI的,所以只能说ANSI是兼容ASCII的,而不能说ASCII是根据ANSI编码所得。

  • 02

    ASCII,他的全称为American Standard Code for Information Interchange,美国信息交换标准代码。要知道,一个字节为8位,而8位最多可以组合256种不同的状态,用来保存英文、数字、符号完全够用了,而事实上,ASCII只用了前128个字符。但是后来除了美国,其他的一些国家也使用了计算机,但是他们的文字并非都是这些字母,所以又使用了后面的128位,又叫:”扩展字符集“。

  • 03

    MBCS:就目前我查阅的资料来看,MBCS是一种统称,许多汉字的编码都属于MBCS,比如GB2312、GBK、GB18030等。因为无论ASCII编码如何扩展,也满足不了中文,中文的字数太庞大了。MBCS支持中英文混用,英文的话就和ASCII一样,中文的话就占2个字节,GB2312的字数最少,其规定必须2个字节都大于127才表示一个汉字;其次是GBK,其规定只要第一个字节大于127就可以了;最后是GB18030,具体编码不清楚,好像不止2个字节,但应该是兼容GBK的,字数比前面2个要多的多。

  • 04

    现在,再来看ANSI,叫美国国家标准协会,顾名思义是用来定义世界编码方式的,不像ASCII,当初创建的时候只是想给美国人自己用而已。ANSI的规则是,ASCII不能动,也就是说所有的ANSI标准都是兼容英文的,比如中文的GBK编码就可以实现中文和英文混用。但是,每个国家自己的文字编码就各不相同了,比如中文的ANSI编码和日本的ANSI编码就完全不同,所以无法实现中文和日文的混用。另外,只要你的编码被ANSI认可,以后世界上任何地方只要使用中文,就必须用中国的这一套编码方案。

二.Unicode

  • 01

    根据网上查询的资料来看,有的说Unicode是一种符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储,并不是一种编码方式。但是我们常用的TXT文档中,明显就有一种Unicode编码格式,这是为什么呢?

  • 02

    从我目前查阅的资料来看,Unicode确实是一种符号集,可以简写为UCS(Unicode Character Set)。但是,Unicode也是有他自己的编码格式的,比如UCS-2就是用两个字节编码、UCS-4用4个字节编码。那么,TXT文档中的Unicode是什么呢?其实就是UCS-2,并且是小端模式。 当然,以上都是我查阅资料所获取的,如果不对,麻烦告知。

  • 03

    所以,Unicode将全世界所有的文字等都进行了统一的编码,这样就不会有ANSI的兼容问题。

  • 04

    但是Unicode一直得不到推广。因为英文只占一个字节,但是在Unicode却要占2个字节,有很大的浪费;另外,又如何去区分Unicode和ANSII呢,计算机如何知道3个字节到底是一个字符,还是3个字符呢?

  • 05

    直到互联网的出现,推动了Unicode的推广。因为,互联网拉近了人和人之间的距离。那么如果用ANSI的话,编码格式太乱了。而UTF标准就出现了,其中UTF-8就是在互联网上使用最广的一种unicode的实现方式,因为他是变长的,所以极大的节省了空间,这种为传输而出现的编码格式,使得全世界的编码方式统一,非常的便利。 如下图所示,有一个网页的代码,他的编码格式就是UTF-8。 这里记录下:java是双字节编码,采用的是UTF-16BE,中文占2个字节,英文占2个字节

三.URL编码

  • 01

    url编码是一种浏览器用来打包表单输入的格式,其基本格式为"key=value"这种键值对的,如果要传多个参数就需要用“&”符号对键值对进行分割。

  • 02

    URL编码其实使用的是ascii码的16进制,所以,URL中只能有英文、数字还有一些特殊字符。

  • 03

    那我们在访问网址的时候,有时候确实后面的参数有中文。这时候,就使用了encode编码,将中文写成%XX的格式,然后再通过decode还原成中文。当然,不仅仅是中文,许多字符等都是这样操作的。

  • 04

    那么这些中文,是使用的什么编码方式转变为%xxx的形式呢?肯定不是ASCII,因为他压根不认识中文。从我网上查询的资料来看,貌似UTF-8占多数,但好像也有GB2312这种编码方式。具体我也不清楚,如果不对麻烦告知。

  • 05

    URL编码我也不太了解,如果说的有错,麻烦告知。

四.一个经典的问题:TXT显示联通乱码

  • 01

    新建一个文本文档,在里面输入“联通”2个字。

  • 02

    然后关闭文档,重新打开,发现变成乱码了

  • 03

    这是为什么呢?我们再写一个TXT文档,写入你好,重新打开文档后,发现是可以正确显示的,我们看一下他的编码方式。通过“另存为”,可以发现编码方式为ANSI

  • 04

    在看一下刚才写的联通,发现编码方式为UTF-8,此时隐约可以知道,应该是编码导致的。

  • 05

    这里说一个概念:首先,计算机只认识0和1,所以任何字符等在计算机里,都是以二进制的形式存储的,也就是字节的形式存储。那么,当计算机中的字节序列是以某种编码格式存放的,想要将这些字节序列重新变成人所认识的字符串,也需要使用这种编码格式,否则会出现乱码。

  • 06

    那么,刚才那个TXT文本,其实就是文本文件。文本文件在计算机中存储的就是字节序列。如果我们直接在中文的电脑上创建一个文本文件,那么这个文本文件只认识ANSI编码,(这句话并不是指文本文件只认识ANSI编码,其实你可以将各种的编码格式的字节存放进去,但在中文机器上直接创建,就有其特殊性)。而联通这两个字巧了,刚好符合UTF-8的编码格式,所以就当做UTF-8存储了,但重新将字节转换为字符串的时候,是以ANSI格式转换的,肯定是乱码。

  • 07

    现在,你再试一下,在联通的后面加入任意的字,比如联通哈哈。那么,哈哈2个字和UTF-8的编码格式不一样的,所以仍然会作为ANSI格式存储,就不会有问题了。

(0)

相关推荐

  • MKV文件用什么播放器播放?MKV是什么格式的详细介绍

    MKV不是一种压缩格式,而是Matroska的一种媒体文件,Matroska是一种新的多媒体封装格式,也称多媒体容器 (Multimedia Container)。它可将多种不同编码的视频及16条以上 ...

  • mkvtoolnixm(kv制作)软件怎么用?mkvtoolnix软件使用方法图文详细教程介绍

    mkv不同于DivX、XviD等视频编码格式,也不同于MP3、Ogg等音频编码格式。mkv只是为这些音、视频提供外壳的“组合”和“封装”格式,换句话说就是一种容器格式。通常的mkv视频格式里面包含了视 ...

  • Edge浏览器新版功能介绍

    Edge浏览器新版功能介绍 Edge浏览器可以说是微软在Windows 10中提供给用户最大新特性之一,其功能与以往的任何一代IE浏览器相比都要更强. 现在,微软工程师们又将为Edge浏览器带来了新的 ...

  • 火车采集器的相关术语介绍

    火车采集器的相关术语介绍 1.采集任务 采集任务是火车采集器中对于数据采集和数据发布任务的完整配置,包含采集规则和发布模块. 2.采集规则 即我们对如何采集和采集什么的问题给出一些设置让采集器按照设置 ...

  • word出现宏病毒安全警告怎么办?怎样用编码格式进行加密?

    word文档是我们身边随时都会用到的电脑办公软件.有时word文档的文件会出现宏病毒安全警告.但是宏也有好的一面,它可以用来加密文件,起到一定的保护作用.那么word出现宏病毒安全警告怎么办?怎样用编 ...

  • 怎么设置记事本文件编码格式

    记事本是电脑自带的文本编辑工具,有些用户想知道怎么设置记事本文件编码格式,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步根据下图所示,按下[Win+R]快捷键打开[运行]窗口.2 ...

  • 在mysql中新建数据库并且设置编码格式

    mysql中新建数据库及设置编码格式的方式很多,这里介绍一下在windows下设置的方式. 操作方法 01 首先需要安装操作mysql的一款工具软件,Navicat Lite for MySQL,可以 ...

  • tomcat设置编码格式

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选,下面小编介绍一下如何修改to ...

  • linux下查看文件编码格式以及转换格式教程

    我们大家都知道文件有不同的编码格式,本篇我们就详细介绍下如何在linux下查看文件编码格式,以及如何转换文件的编码格式,转换编码格式使用iconv命令.具体教程如下图所示. 操作方法 01 首先我们打 ...