文件乱码_qq同步助手 vcf文件 格式 乱码_kdh文件 乱码

今天是春节之后第一天上班,

锟哥在这里先祝大家,开工大吉,身体健康!

同时,锟哥也给大家准备了开工红包,在我们的公众号后台回复 开工大吉 领取红包,先到先得哦!

回归今天的主题,我们先来看一张图:

文件乱码_qq同步助手 vcf文件 格式 乱码_kdh文件 乱码

是不是非常非常的熟悉,特别是在 5-6 年之前!

你向某人发的 表白小作文.txt,他迟迟不回你信,别怀疑,TA 或许打开看到的就是这样的内容,哈哈!

今天我们就要来讨论下:

为啥当年你迟迟没收到回信,呸….

讨论下,这乱码是咋造成的!

字符编码基础知识

要破译这悬案,首先得知道些字符编码的基础知识。

因为字符编码,对于计算机技术来说,是他必不可少的基石。

为啥呢?

因为计算机他们计算、交流都使用的是 010101 这种二进制

我们人类不可能也用二进制去和计算机交流呗,

如果那样的话,你现在看到的这篇文章应该全是 01 而不是现在的这种 文字符号 。

所以在文字和计算机之间就必须存在一种转换(翻译)的角色,

kdh文件 乱码_qq同步助手 vcf文件 格式 乱码_文件乱码

就像两个不同国家的人交流,

如果双方都不懂对方语言,就需要一个 翻译 来为双方翻译。

这个 翻译 在计算机里面就是 字符集 。

最开始计算机只收录了 128 个字符,这个字符集叫 ASCII 码。

以下我截了表的部分,来自百度百科。

文件乱码_kdh文件 乱码_qq同步助手 vcf文件 格式 乱码

文件乱码_qq同步助手 vcf文件 格式 乱码_kdh文件 乱码

你可以看到,大写字母 A 对应的数字是 65 。

怎么运作的呢?

计算机里面计算、存储这些依旧使用 0101 二进制,但是当需要和人类交互的时候,就需要按照字符集翻译成属于我们的文字。

来看一句 Go 语言代码:

fmt.Printf("%c n",65)

// 执行结果
A

这句代码就是把 65 这个十进制,根据字符集给翻译成了大写字母 A 。

更多的字符集

ASCII 码 表只收录了 128 个字符,随着互联网技术的发展,很明显是不够用的。

不同国家有自己的文字也就意味着有各自的字符集,比如我国就有GB2312,韩国有Euc-kr,

但这样一来大家都各自搞一套,不乱套了么!

于是 Unicode 就诞生了,他把全球所有的符号都给收录了进来,都给了他们一个唯一的编码。

貌似一下就天下太平了。

但是 Unicode 只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。

比如,汉字严的 Unicode 是十六进制数4E25,转换成二进制数足足有15位(100111000100101),也就是说文件乱码,这个符号的表示至少需要2个字节。表示其他更大的符号,可能需要3个字节或者4个字节,甚至更多。

但是我们知道英文字母只用一个字节表示就够了,如果 Unicode 统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储来说是极大的浪费,文本文件的大小会因此大出二三倍。

这该怎么办?

Unicode 解决了翻译,但是没解决传输和存储问题!

于是 UTF-8 来了!

UTF-8 就是在互联网上,是使用最广的一种 Unicode 的 实现方式之一,敲重点,是实现方式,同时是之一。

其他还有 UTF-16,UTF-32 但我们一般不用。

UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。

具体咋实现变长的文件乱码,规则是啥,我这里截一张阮一峰大神的文章里的描述:

kdh文件 乱码_qq同步助手 vcf文件 格式 乱码_文件乱码

图片来自:

经过这两个牛逼技术的组合,你此刻才能看到屏幕上的文字!

因为我们数据在传输的时候,并不是使用的文字符号,而是被翻译成了 UTF-8 码的方式进行传输的。

那为啥会出现乱码呢?

当 UTF-8 并没大一统的时候,各家的字符集都不一样。

你文档里面的内容使用的是 GB2312 编码 ,但你使用 ASCII编码 去翻译,那肯定就乱码了哇。

不过现在一般还是不太容易出现了,因为各大厂家,各大开发者,都基本默认使用 UTF-8 了。

所以乱码出现的概率就比较小了。

文件乱码_qq同步助手 vcf文件 格式 乱码_kdh文件 乱码

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击网站首页每天更新
站 长 微 信: aiwo51889