咳咳

人生的三大错觉之一

就是她喜欢我

为了解开粉丝的疑惑

让他面对现实

今天我就来给大家揭秘

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

首先

我们要意识到

『乱码』

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

举个例子

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

事实上

Excel 对中文的解析编码

默认是 GBK

所以

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

Excel 默认会用 GBK 去解析

双击打开

出现一大坨乱码

其实是很正常滴

才不是有什么隐含信息呢

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

知道了乱码产生的原理是

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

那么解决办法就很简单了

(把读取的编码方式改为 UTF-8)

因为 Numbers 默认是 UTF-8

所以不会显示乱码

什么?你说就这?

作为程序员

当然还有更装逼的办法

当然还有更加极客的办法

(把文件转为 GBK)

iconv -f UTF-8 -t GB18030 test.csv > test2.csv

轻松搞定

既然讲到这了

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

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

首先,我们都知道

计算机起源于美国

他们用二进制来存储数据

每一个 0 或 1 称为一位

而八位就组成了一个字节

每一位能标识两种状态

每个字节则能标识 2^8 = 256 种状态

那么这些状态有啥用呢?

美国人把 0 - 127 这 128 个状态

都映射到各种字符上

包括大小写英文字母、标点符号、数字

这就是常说的 ASCII 字符集

后来

随着其他国家开始使用计算机

ASCII 里没有他们的字母

他们便利用起剩下的 128 - 255 位

这被称为 ASCII 拓展字符集

然而

事情并没有这么简单

等到中国人开始使用计算机时

已经没有多余的位置了

咋办呢?

智慧的中国人民

毫不客气地去掉了127 位之后的编码

用 2 个字节来编码一个汉字

这样一来

7000 多常用汉字的编码问题就解决了

这就是 GB2312 编码

它是对 ASCII 的中文拓展

但汉字实在太多了

GB2312 不够用了咋办呢

这个问题充钱(拓展)就能解决

这回拓展出了GBK

不仅包含 GB2312 所有内容

还包含了 20000 多个

新的汉字(含繁体字)

再后来少数民族也要用电脑了

GBK 又拓展成了 GB18030

这一系列汉字编码标准被通称为

DBCS

中国人的编码问题解决了

但日本、韩国各自的编码问题咋办呢?

他们也各自搞了一套自己的编码标准

结果就是

谁也不支持谁

兼容性问题眼看着愈来愈严重

这可咋办呢?

这时

Unicode

闪亮登场

Unicode 的制定就是为了

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

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

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

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

这就是字符集的发展过程

回到 UTF-8

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

UTF-8 由

肯·汤普逊

罗勃 · 派克

发明

其中

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

听听

这是人话吗

知道了 UTF-8 的来历

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

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

也就是说

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

2003年11月

UTF-8 被 RFC 3629 重新规范后

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

规则其实很简单

看不懂没关系

来看几个例子

按照不同的编码方式

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

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

是不是很简单

什么?

你说还没看懂?

················· END ·················

本文作者菜饼,鹅厂程序员,目前致力于用心创造有趣的文章,把技术与趣味相结合,博君一笑的同时,也能收获知识,岂不美哉?

为啥妹子给我发的 Excel 打开之后是乱码?相关推荐

  1. excel 打开csv中文乱码

    excel 打开csv中文乱码 背景 用linux跑数据,拉取csv文件,下载到本地windows,然后用excel发现中文乱码了 解决办法 在linux中更改文件编码,两种方式 第一种,在打开的时候 ...

  2. php导入csv wps乱码,《excel打开csv格式乱码》 WPS不兼容EXCEL打开后出现乱码怎么解决...

    SAP数据导入Excle后为什么中文显示乱码? 哪位能告知,谢谢 应该是打开方式题!按下列顺序打开: 1.运行Microsoft excel 2.选择菜单件---打开 3.选择你导出的excel文件 ...

  3. Excel 打开 CSV 文件乱码解决方法

    Excel 打开 CSV 文件乱码解决方法 - 膨胀的面包 https://blog.wangtwothree.com/code/157.html 经常接触数据的朋友,可能时不时会遇到这种情况,一份 ...

  4. excel打开csv 出现乱码怎么解决 逗号分隔

    excel打开csv 出现乱码怎么解决 https://jingyan.baidu.com/article/ac6a9a5e4c681b2b653eacf1.html CSV是逗号分隔值的英文缩写,通 ...

  5. EXCEL打开CSV文件乱码的解决方法

    用C#程序通过StreamWriter导出字符串,导出生成txt文本文件,用记事本打开正常,改成csv格式,用excel打开乱码,且不能正确识别分列. 后用记事本打开,把编码从utf-8改成ansi之 ...

  6. excel打开csv文件乱码解决办法

    参考链接: https://jingyan.baidu.com/article/4dc408484776fbc8d846f168.html 问题:用 Excel 打开 csv 文件,确认有乱码的问题. ...

  7. Excel打开csv文件乱码问题的解决办法

    产生背景 今天在用excel打开一个脚本生成的csv文件(存储编码格式为utf-8)时出现了乱码情况,但是用WPS直接打开却正常显示.因为文件是要交给客户的,office又是普遍使用的一枚办公软件,总 ...

  8. 用python将爬取内容写入csv文件中用excel打开后的乱码问题

    在平时的数据采集中我们经常会将一些数据存入csv文件,但是有时候用excel打开csv文件会发现乱码. 可能有的人会问为什么不直接将数据写去excel中,而是先写入csv然后又用excel打开,不嫌麻 ...

  9. mac系统下excel打开csv中文乱码

    原因 csv文件通常是utf-8进行编码的,mac系统使用的也是utf-8编码,按理来说mac系统下打开csv文件轻而易举,即便是中文也不应出现乱码. 的确,用numbers和textFile打开cs ...

最新文章

  1. IHttpHandler的学习(0-2)
  2. SaltStack:Salt SSH
  3. 全球新能源汽车行业前景规模及发展趋势预测报告2022-2028年版
  4. 用python简单处理图片(4):图像中的像素访问
  5. sql server中的go
  6. stm32g474教程_(完整版)STM32F103通用教程
  7. KITTI数据集下载链接
  8. android studio改java,Android Studio如何修改快捷键
  9. Python——集合运算
  10. [django]梳理drf知识点
  11. 美国英语情景对话大全(zt)
  12. 热设计功耗(TDP)与功耗(P)
  13. Salesforce系列(六):Salesforce Apex基础SOQL查询和数据添加!
  14. 苹果电脑安装java_mac系统 安装 JDK 并配置环境
  15. 不准用组函数(Max),取得最高薪水
  16. Android面试题(含答案)
  17. 两个故事讲述什么是消息队列
  18. 【邢不行|量化小讲堂系列40-Python量化入门】为什么我推荐使用Anaconda
  19. 联想贺志强:智能互联网时代将有N倍速的产业新机遇
  20. 单位员工通讯录管理系统

热门文章

  1. List集合转String、String转List集合
  2. 押注泛C端交易合规:高灯推动财税科技“底层思维”革新?
  3. AMD于2022年完成并购赛灵思XILINX,7系列产品生命周期延长至2035年
  4. ObjectARX 足球算法
  5. 华为鸿蒙是系统还是处理器,华为将发布MatePad Pro:搭载鸿蒙系统,麒麟9000处理器...
  6. 广州科二化龙考场_广州番禺化龙驾考新考场启用 每年可供30万人次考试
  7. powerDesigner的一些记录
  8. 对象、对象引用、实例
  9. lol服务器崩溃补偿领取中心,lol符文补偿,lol符文补偿领取中心
  10. seo和php哪个容易学,php好学吗?和其它语言比哪个好学?