咳咳
人生的三大错觉之一
就是她喜欢我
为了解开粉丝的疑惑
让他面对现实
今天我就来给大家揭秘
乱码背后那些不为人知的事
首先
我们要意识到
『乱码』
本质上是编码与解码的方式不一致
举个例子
当用拼音的方式来解读英文
事实上
Excel 对中文的解析编码
默认是 GBK
所以
当有人把 UTF-8 编码的 Excel 文件发给你
你打开后发现是一坨乱码
是很正常滴
才不是有什么隐含信息呢
那么遇到这种问题该怎么解决呢?
知道了乱码产生的原理是
读取的编码方式与写入时不一致
那么解决办法就很简单了
因为 Numbers 默认是 UTF-8
所以不会显示乱码
什么?你说就这?
作为程序员
当然还有更装逼的办法
当然还有更加极客的办法
代码语言:javascript复制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个字节来进行编码
规则其实很简单
看不懂没关系
来看几个例子
是不是很简单
什么?
你说还没看懂?
代码语言:javascript复制Unicode 字符查询地址:https://unicode-table.com/cn/