乱码怎么恢复正常(表格乱码怎么恢复正常)

相信大家在日常生活中,都见过类似下面的这些类似的字符串:

乱码怎么恢复正常(表格乱码怎么恢复正常)

上面这种,看起来不明所以的内容,通常被称作乱码。那么乱码是如何产生的,并且如何修复呢?我们接下来就一步步对此进行解释

编码规则

字符串,本质上都是一个字节一个字节的数据,连在一起存储的。而要将这些数据显示在屏幕上,则需要按一种编码规则进行解析。

ASCII

ASCII编码是最容易理解的。ASCII编码因为每个字符仅占用7bit,所以最多只能存储127个字符,而每个字符都有唯一的一个数字与其对应。

例如:

数字0x35在这种编码规则下,会被解析为字符5

数字0x6C在这种编码规则下,会被解析为字符l

数字0x4C在这种编码规则下,会被解析为字符L

具体对应规则,可以在网上搜索ASCII 码表查看

按照这种规则,一串hello,用16进制数据表示就是68 65 6C 6C 6F

GB2312

因为ASCII只能显示127个字符,远远不能满足中文字符的显示需求,所以中国国家标准总局于1980年发布了国家标准代码 GB 2312 标准(目前最新标准为 GB 18030)

简单来说,在这套编码规范下,每个中文字符可以由2个字节表示,例如:

啊的实际数据为0xB0 0xA1

测的实际数据为0xB2 0xE2

试的实际数据为0xCA 0xD4

同时,因为ASCII编码下每字节使用了7bit(0x00-0x7f),GB2312为了对其进行兼容,规定每个中文字符的高位字节(第一个字节)使用0xA1–0xF7的范围,避开了ASCII编码使用的区域。

也就是说,想下面的一串混用了中英文的数据,也可以正常被解析并显示出来:

乱码怎么恢复正常(表格乱码怎么恢复正常)

UTF-8

UTF-8可以使用1-4字节来表示字符,因为其兼容性强,可以对Unicode字符集中的所有有效编码点进行编码,是目前使用最广泛的编码标准。

与GB2312一样,UTF-8同样兼容ASCII编码。只是UTF-8比GB2312包含了更多字符,并且每种字符的字节数并不是完全固定的。由于编码规则比较复杂,这里不作具体解释,只会举例说明:

啊的实际数据为0xE5 0x95 0x8A

测的实际数据为0xE6 0xB5 0x8B

试的实际数据为0xE8 0xAF 0x95

其他编码

除了GB2312、UTF-8和ASCII编码,还有许多编码标准,他们大部分互不兼容。

存储和传输字符串数据

数据都是要进行存储和传输的

存储

微软使用BOM 头这种技术来为纯文本文件标记其编码,这样打开文件时就可以用正确的编码进行解析。

而大部分Linux不使用类似技术,所以读取后只能靠猜测,或强行指定,来进行显示。

传输

传输不仅指字符串数据在互联网上的传输,也包括了在各类函数调用过程中的传输。这类操作通常都不会带有字符编码标准的标记,一般靠直接指定编码来解决。

产生乱码

聪明的你应该已经想到了,如果一串某编码的数据,被人使用另一种编码标准进行解析,那么得出的结果几乎一定是错误的。

比如测试解析结果这几个字,我们使用UTF-8编码,得到下面16进制数据:

乱码怎么恢复正常(表格乱码怎么恢复正常)

如果,收到这些数据的人尝试使用GB2312编码来显示,那么结果就是我们非常熟悉的乱码了:

乱码怎么恢复正常(表格乱码怎么恢复正常)

上面的过程就是典型的乱码形成过程

修复乱码

乱码是否可以还原?答案是肯定的,只需要按乱码形成时的操作反过来做一遍就可以恢复了。但是有些编码中会出现?这种无法解析显示的数据,这部分数据就完全丢失了。

一般的乱码修复操作,就是把各种编码可能性都试一遍,看哪个结果可靠,那么就是原始内容。

这里推荐使用开源的工具 llcom (llcom.papapoi.com),来进行乱码恢复工作

我们用上一节生成的乱码数据作为例子,尝试修复:

乱码怎么恢复正常(表格乱码怎么恢复正常)

可以看到可靠的结果已经显示出来,修复成功

避免乱码

建议在写代码时统一使用UTF-8编码,这是目前互联网的最主要的编码形式

如果是资源占用紧张,但依旧需要中文显示的地方,可以考虑使用GB2312编码存储数据

免责声明: 文章源于会员发布,不作为任何投资建议

如有侵权请联系我们删除,本文链接:https://www.sws100.com/kexue/421228.html

(0)
鸟叔鸟叔
上一篇 2023年 5月 12日
下一篇 2023年 5月 12日

相关推荐

  • 颠沛流离啥意思(颠沛流离啥子意思)

    以连绵词来讲: 第四册153页,望洋兴叹,也写作“望羊”或“望阳”,仰视的样子。“望洋”是连绵词,不能拆开而解释,“合二字而成一语,其实犹一字也”(王国维)。虽然是两个音节,但表示一个意义,因此我们理解词义的时候不可以拆开来解释,望洋≠望着海洋,望羊≠望着绵羊,望阳≠望着太阳。望洋,仰视貌。有人说“洋”最初的本字是“阳”,最初的本义是望着太阳,向高处看(仰视…

    2023年 2月 19日
  • 社保转移后医保卡的钱会一起转吗(办了社保转移医保里的钱也一起转了吗)

    社保卡更换卡片以后,医保卡的余额怎么办呢?从2019年开始,到2021年大概有将近两三年的时间,全国各个地区都在更换第3代社保卡片。那么有些人担心更换第3代烧包卡片以后,会不会影响到我们今后的医保余额呢?自己的医保余额又该如何使用呢?其实并不会出现这样的一个问题,你的卡片实时更换完成以后,余额也就实时地过度转移过来了,不会存在任何的影响。 对于我们而言是非常…

    2023年 1月 23日
  • 不去考四级会影响下次报考吗(不去考四级会禁考吗)

    “裸考胜出”,这可能是很多大学生报考四六级考试的心愿,实在过不了,就不去参加考试了。听到这样的话,辅导员就“呵呵”了,并警告你:本次缺考,下一次你可能连报名都难。 在很多大学生心中,四六级考试并不是一件“重要的事情”,因此他们的态度大多是:起来就去考,起不来就“错过去”。 可学生们的想法很美好,现实却残酷,随着报考四六级的学生越来越多,部分高校的考场也很紧张…

    2023年 5月 24日
  • 黑龙江省面积多少万平方公里(黑龙江省总面积多少万平方公里)

    黑龙江省地图 中国地理:黑龙江(总篇) 黑龙江省, 简称“黑”, 位于祖国的最北方。 面积47.3万平方公里, 人口三千七百多万, 有54个民族, 和谐、幸福、安康。 位于东北地区, 西部与内蒙相邻, 南部与吉林接壤。 隔黑龙江、乌苏里江与俄罗斯相望, 边境线有三千公里长。 漠河县北极村, 中国最北的地方; 黑瞎子岛上的“东方第一哨”, 中国最东的地方。 五…

    2022年 10月 18日
  • 新能源基建股票的十大龙头股(新能源基建股票的十大龙头股是哪些)

    最近有很多朋友都想知道新能源基建股票的十大龙头股是什么。今天小编特意为大家整理了相关知识来解答!还有其他网友想搞清楚新能源基建股票的十大龙头股是哪些,句子百科(www.sws100.com)已经为你找到了相关问题的答案,接下来一起看看吧,希望能给大家带来帮助。 严重低估 十九家股性最活跃的大基建龙头股一览 古人云,“以史为镜可以知兴替”,春江财富则认为“下棋…

    2022年 9月 3日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信