字符编码入门:从ASCII到UTF-8,你真的了解文本是如何存储的吗?

打开一个文本文件,你看到的是一行行文字。但在计算机眼中,这些文字不过是一串数字。字符编码,就是连接人类可读文字与计算机可处理数字之间的桥梁。 很多开发者在日常工作中都遇到过编码问题:网页显示乱码、数据库存储中文出错、文件读取变成问号。这些问题看似琐碎,却常常让人抓耳挠腮。要彻底理解并解决这些问题,需要从最基础的概念开始。 ...

9 min · 4113 words

一行看不见的字符如何让编译器背叛你:从Unicode双向文本到Trojan Source的供应链暗战

2021年10月,剑桥大学的两位研究员向19家科技公司发送了一份措辞谨慎的安全报告。报告中包含一段C代码,看起来简单到不值一提:检查用户是否为管理员,如果不是就什么都不做。然而,编译运行后,程序却打印出了"You are an admin." ...

12 min · 5866 words

同一个表情符号,为何在不同平台呈现完全不同的面貌?

2016年,明尼苏达大学的研究团队发表了一项令人震惊的发现:同一个Unicode字符——“眯眼笑脸”(U+1F601)——在不同平台上被解读出截然相反的含义。 ...

13 min · 6143 words

一个字符有几张脸?Unicode的三十五年编码困境

在Stack Overflow上,一个反复出现的问题困扰着无数开发者:为什么JavaScript中"🤦🏼‍♂️".length的结果是7,而不是1? ...

14 min · 6833 words