妹子给了我一个了乱码的Excel,我差点误会了...

苦逼的码农

共 1074字,需浏览 3分钟

 ·

2021-03-22 14:07

咳咳
人生的三大错觉之一
就是她喜欢我



为了解开粉丝的疑惑

让他面对现实

今天我就来给大家揭秘

乱码背后那些不为人知的事

首先

我们要意识到

『乱码』

本质上是编码与解码的方式不一致



举个例子

当用拼音的方式来解读英文

事实上

Excel 对中文的解析编码

默认是 GBK



所以

当有人把 UTF-8 编码的 Excel 文件发给你

你打开后发现是一坨乱码

是很正常滴

才不是有什么隐含信息呢



那么遇到这种问题该怎么解决呢?


知道了乱码产生的原理是

读取的编码方式与写入时不一致

那么解决办法就很简单了

因为 Numbers 默认是 UTF-8

所以不会显示乱码

什么?你说就这?

作为程序员
当然还有更装逼的办法
当然还有更加极客的办法
iconv -f UTF-8 -t GB18030 test.csv > test2.csv

轻松搞定



既然讲到这了

那就再讲讲 UTF-8 到底是个什么东东

(非战斗人员可以撤离了)

首先,我们都知道

数据都是以二进制存储的(在电脑中)

因此

按照不同的编码方式

同一句话被编码后的 01 字符串不同

(正如我们前面所说的 UTF-8 和 GBK)



在了解 UTF-8 的具体编码方式之前

我们需要先来看看

字符集

上世纪60年代

美国制定了 ASCII 字符集

但随着各国计算机行业的发展

ASCII 不够用了

各国开始制定各自的字符集

直到 Unicode 的出现

Unicode 的制定就是为了

将世界上所有的符号都纳入其中

每一个符号都给予一个独一无二的编码

如此一来就可以解决乱码问题

(虽然到现在并没有解决)

回到 UTF-8

它其实是 Unicode 字符集的一种编码方式

UTF-8 由

肯·汤普逊

罗勃 · 派克

发明


其中

肯·汤普逊 是名副其实的大佬


听听

这是人话吗


知道了 UTF-8 的来历

那么 UTF-8 具体是怎么编码的呢?

UTF-8 作为一种可变长的编码方式

也就是说

不同的字符占用的字节数不同

2003年11月

UTF-8 被 RFC 3629 重新规范后

使用 1- 4个字节来进行编码

规则其实很简单

看不懂没关系

来看几个例子


是不是很简单

什么?

你说还没看懂?

Unicode 字符查询地址:https://unicode-table.com/cn/
浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报