带你读《全景揭秘字符编码》之一:一、引言

简介: 带你读《全景揭秘字符编码》之一:一、引言

一、引言


说起计算机字符编码,让我想起了科幻巨作《三体-黑暗深林》人类遇到外星文明魔戒的画面(以下内容摘自大刘的原文)。


人类第一次近距离看到四维物体魔戒,卓文用中频电波发送了一个问候语。这是一幅简单的点阵图,图中由六行不同数量的点组成了一个质数数列:1,3,5,7,11,13。

他们没有指望得到应答,但应答立刻出现了

.....

太空艇收到了来自“魔戒”的一系列点阵图,第一幅是很整齐的一个8×8点阵,共六十四个点;第二幅图中点阵的一角少了一个点,剩下六十三个;第三幅图中又少一点,剩六十二个……“这是倒计数,也相当于一个进度条,可能表示‘它’已经收到了罗塞塔,正在译解,让我们等侍。”韦斯特说。

“可为什么是六十四点呢?”

“使用二进制时一个不大不小的数呗,与十进制的一百差不多。”

卓文和关一帆都很庆幸能带韦斯特来,在与未知的智慧体建立交流方面、心理学家确实很有才能。

在倒计数达到五十七时,令人激动的事情出现了:下一个计数没有用点阵表示,“魔戒”发来的图片上赫然显示出人类的阿拉伯数字56!

.....


在人类探索外星文明、迈向星辰大海的宇宙征程里,也离不开这种最最基础的编码问题。


前一阵跟同事碰到了字符乱码的问题,了解后发现这个问题存在两年了,我们程序员每天都在跟编码打交道,但大家对字符编码都是一知半解:“天天吃猪肉却很少见过猪跑”,今天我就把它彻底讲透!



* 推荐阅读:如果本文太“硬”,就看看这两篇吧:《史上最通俗,彻底搞懂字符乱码问题的本质》、《字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8》。


技术交流:

- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM

- 开源IM框架源码:https://github.com/JackJiang2011/MobileIMSDK备用地址点此

相关文章
|
C++
管理本地代码仓库
通过代码仓库了解同事的代码提交情况
377 0
|
机器学习/深度学习 搜索推荐 算法
优秀的推荐系统架构与应用:从YouTube到Pinterest、Flink和阿里巴巴
优秀的推荐系统架构与应用:从YouTube到Pinterest、Flink和阿里巴巴
487 0
|
监控 安全 物联网
13位物联网卡与11位物联网卡有什么不同
物联网卡(IoT卡)的13位号码和11位号码之间存在一些关键差异。以下是针对这两者区别的详细操作步骤和解释:
|
Java 测试技术 开发者
初学者入门:掌握单元测试的基础与实践
【10月更文挑战第14天】单元测试是一种软件测试方法,它验证软件中的最小可测试单元——通常是单独的函数或类——是否按预期工作。单元测试的目标是确保每个模块在其自身范围内正确无误地运行。这些测试应该独立于其他模块,并且应该能够反复执行而不受外部环境的影响。
334 2
|
8月前
|
人工智能 网络协议 API
开发效率翻倍!Apipost这些协议调试秘籍,从HTTP到金融报文全搞定
Apipost是一款强大的API研发管理工具,支持多种协议与数据格式,包括HTTP(s)、WebSocket、SSE、gRPC、TCP及金融协议(如ISO 8583、FIX)。它内置国密算法库,提供HTTP文件秒传、全局参数配置等实用功能。在SSE调试中,可轻松处理AI模型流式响应;WebSocket与Socket.IO实现高效实时通信;GraphQL支持可视化Query编写;TCP模块解决金融报文编码难题;gRPC则具备服务反射与流式调试能力。Apipost不仅简化了多协议切换的复杂性,还自动生成文档,显著提升开发效率,让开发者专注于核心业务逻辑。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
《攻克语言密码:教AI理解隐喻与象征》
在自然语言处理(NLP)领域,理解隐喻和象征是提升语言理解能力的关键。这些非字面表达承载丰富情感与文化内涵,如“时间就是金钱”或“寒梅”象征坚韧。然而,基于规则和数据驱动的NLP模型在处理这类表达时面临巨大挑战,因为它们依赖语境、文化和人类经验。未来,通过引入知识图谱、深度学习、多模态信息及上下文分析等方法,有望改善NLP对隐喻和象征的理解,推动人机交互更加自然深入。
467 15
|
安全 Unix Linux
Xshell和Xftp的下载和在linux虚拟机中的使用
这篇文章介绍了Xshell和Xftp的下载、安装和使用方法,包括如何在Linux虚拟机中使用它们进行远程连接和文件传输。
Xshell和Xftp的下载和在linux虚拟机中的使用
|
10月前
|
自然语言处理 JavaScript 前端开发
Qwen开源多语言基准数据集P-MMEval
Qwen开源多语言基准数据集P-MMEval
|
存储 Docker 容器
|
Java 索引
增强for循环和一般for循环的对比使用
这篇文章对比了Java中的增强for循环(for-each循环)和传统的for循环,介绍了增强for循环的优点,如简化数组或集合的遍历、提高代码的可读性和可维护性,并指出增强for循环不适用于需要修改数组或集合元素的场景。文章还提供了增强for循环的语法格式,并展示了在实际应用中如何使用增强for循环来遍历数组和数组对象。
增强for循环和一般for循环的对比使用

热门文章

最新文章