你在电脑上看到的字到底是怎么显示出来的?

你在电脑上看到的字到底是怎么显示出来的?

💡 原文中文,约6000字,阅读约需15分钟。
📝

内容提要

本文介绍了字符编码的发展,从最初的ASCII码表到统一的Unicode编码,解决了乱码问题。还讨论了字符编码到字体的转换以及处理复杂编码的方法。

🎯

关键要点

  • 1 bit 是 1 个 1 或 0,1 byte = 8 bit,1 byte 可以表达 256 个数字。
  • 码表是数值与字符的对应关系,最初的码表是 ASCII,后来扩展为 ISO-8859-1 和 Windows-1252。
  • 不同国家制定了适合本国文字的码表,如中国的 GBK 和 Big5、日本的 Shift-JIS、韩国的 EUC-KR。
  • 编码超过 256 个字符时,需要使用多个字节表示,必须有明确标志告知字节数。
  • Unicode 统一了所有编码,包含了地球上所有语言字符,解决了乱码问题。
  • Unicode 有 10FFFF 个码点,基本多语言平面(BMP)是最重要的部分。
  • Unicode 可以编码成 UTF-8 和 UTF-16,UTF-8 支持变长编码,UTF-16 则固定为 16 位。
  • Unicode 允许多个码点组合成一个字符,例如组合 Emoji。
  • 字体是从编码到显示的关键,常见字体格式有 ttf、otf、woff、woff2。
  • 不同地区的同一码点可能有不同字形,繁简体汉字有不同的码点。
  • 在 Unicode 统一后,编程语言的字符串大多使用 Unicode 编码,JavaScript 使用 UTF-16。
  • charAt、charCodeAt 和 codePointAt 方法在处理字符时有不同的返回值,尤其是对于代理对和组合字符。
➡️

继续阅读