美文网首页程序员@IT·互联网
对于文件编码格式的浅显理解

对于文件编码格式的浅显理解

作者: Mr_Normal | 来源:发表于2017-04-29 00:22 被阅读0次

字体乱码这个问题相信大家都遇到过,但是都是间歇性的,不是经常性的,大多时候都没有太在意。
在遇到过这么多次乱码之后,特别是在linux下打开windows的文件乱码,我觉得有必要了解一下编码方式了。

首先,计算机内部只能存储二进制数据,即1和0的bit位。所以,我们要让计算机显示各种字符,就必须要对字符进行编码,让每一个字符对应一个数字编码。而之所以会造成乱码现象,是因为当初创建文件的时候采用的编码方式,和打开时的编码方式不一样,这样的对应关系就乱了,于是我们看到的就是乱七八糟的。

ASCII

计算机是美国人发明的,所以最初的计算机理所应当支持的就是英文字母以及英文里面的各种符号。由于这些字符不怎么多,美国人就提出了ASCII编码,只用一个字节(byte)表示一个字符。

unicode

随着计算机的发展,计算机只能显示英语是绝对不行的,要不然怎么有我现在的这篇文章呢?而并不是所有语言都像英语一样可以用一个字节表示一个字符(像我大中华便有好几万字符),于是各个国家纷纷开始提出自己国家文字的编码方式。但是世界上这么多国家,这么多语言,要是每个国家都有自己的标准,那一台计算机上不得有好多种编码方式啊,这会造成一种混乱。

这时,多语言软件制造商组成的统一码(unicode)联盟出手了,这个组织在1994年正式提出了unicode编码。正如unicode这个名字,它足以表示世界上所有语言中的字符,现在在世界上被广泛采用。

ISO/IEC 10646

在“统一”这个方面怎么能少的了ISO这个组织,在unicode联盟研发unicode时,ISO也在研发用于各种国家之间的编码方式,ISO定义了UCS(通用字符集),定义了ISO/IEC 10646。ISO和unicode联盟很快认识到研发两个不同的统一码是不必要的,所以他们选择了合作,于是现在它们从内容上来说是同步一致的。

UTF-8

UTF-8,UTF-16以及UTF-32都是unicode的实现方式
实现方式的理解:unicode编码使一个字符对应于一个数字编码,但是在计算机内部不是简单的存入这个编码值,这是为了对计算机中的内容进行更好的组织。所以就有了几种实现方式,将这些数字编码再映射到计算机内存中的二进制码。其中UTF-8就是在互联网的发展,强烈需求下产生的。

中文编码

在unicode提出之前,我国就已经提出了自己的汉字编码

  • GB2312 1981年,GB是国标的意思
  • BIG5 1984年台湾一群人为了解决当时大陆的GB2312没有覆盖繁体而提出的
  • GBK 对国标的扩展,向下兼容GB2312,向上支持ISO/IEC 10646
  • GB18030 我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。

至于中国为什么使用自己规定的国标码而不使用unicode,这个问题我没有找到答案,有知道的在评论区告知一下呢?

乱码

Linux下默认是UTF-8,而windows可能是GB18030,于是这乱码就不奇怪了
还有各种奇奇怪怪的乱码原理都一样,可以通过转换编码的软件(比如enca)转文件的编码格式


大致就是这样了,这里我说的是编码方式,有一个概念叫字符集,规定了每个字符对应的编码,其实就是编码方式,把一件事搞清楚了就好了,不用纠结文字。
如果哪里写的不对,请各位大神们指出啊

相关文章

  • 对于文件编码格式的浅显理解

    字体乱码这个问题相信大家都遇到过,但是都是间歇性的,不是经常性的,大多时候都没有太在意。在遇到过这么多次乱码之后,...

  • 视频详解

    视频文件格式(简称:文件格式),视频封装格式(简称视频格式)视频编码格式(简称视频编码) 视频文件格式: 文件名的...

  • 在Vim中查看文件编码和文件编码转换

    在Vim中查看文件编码 :set fileencoding即可显示文件编码格式。 如果你只是想查看其它编码格式的文...

  • iOS 编码规范

    Table of Contents iOS 编码规范1 文件规范1.1 文件编码1.2 文件命名2 编码格式2.1...

  • Eclispe(STS)设置UTF-8编码

    1.修改workspace编码 preference--> 2.修改文件编码格式 3.特定文件编码

  • 关于 设置 sublime text3 编码格式为utf-8

    文件的编码格式已经设置UTF-8,但提交SVN 之后编码格式还是不变。 原因是 文件内容中没有中文,其英文的编码格...

  • 常见的PKI标准(X.509、PKCS)及证书相关介绍

    目录 ASN.1 - 数据结构描述语言 文件编码格式DER编码格式PEM编码格式 证书、密码学Key格式标准X.5...

  • 文件编码格式

    文件编码格式 从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,...

  • CSS格式化处理(长期更新)

    1、css文件内容使用utf-8编码格式,并保证后面的内容是utf-8的编码格式,而不是GBK等其他编码格式,否则...

  • 初学python-基础语法

    中文编码 Python中默认的编码格式是 ASCII 格式 有汉字的code在文件开头加入# -*- coding...

网友评论

    本文标题:对于文件编码格式的浅显理解

    本文链接:https://www.haomeiwen.com/subject/chtzzttx.html