Skip to content

Latest commit

 

History

History
92 lines (65 loc) · 2.2 KB

字符与编码.md

File metadata and controls

92 lines (65 loc) · 2.2 KB
marp paginate style
true
true
h1 { color: #0bb8e8; }
<style scoped> h1,h2 { color: #0bb8e8; text-align: center } h2 { text-align: right } </style>

Node.js 进阶

字符集与编码

⭐ by calidion


字符集与编码

字符集(Character Set) 一套字符的集合。比如 ASCII 码,就是一个基本的字符集

字符编码(Character Encoding) 一个字符集中,某个字符所采用的码。 比如 A 字符在 ASCII 码字符集中,他的值是 65.


常见的字符集

  1. ASCII
  2. Unicode
  3. GBK
  4. BIG5

常见的编码

  1. ASCII
  2. UTF-8
  3. UTF-7
  4. UTF-16

为什么会有 Unicode?

  1. 最早的字符集与编码是 ASCII 码
  2. 在计算机发展的早期,多字节字符如 GB2312/GBK,BIG5 等在世界发展
  3. 网络出现,导致这些字符集在不同的计算机里面解析出错
  4. Unicode 目标让世界上所有的字符集共用一个通用的字符集

UTF-8 与 Unicode 是什么关系?

UTF-8 是 Unicode 字符集的一种编码方案 Unicode 是一种字符集 UTF-8 与 UTF-16 等都是 Unicode 的编码方案 因为 UTF-8 兼容 ASCII 码,并且无字节顺的差别,而得到广泛的支持。 对于原双字节的编码字符来讲通常会多一个字符为存储,也就是会造成存储空间比原来增加 1/2。 UTF-8 是最广泛支持的互联网编码


乱码的产生

乱码的产生通常有以下几个原因:

  1. 字体不支持,通过 即 OS 系统里没有对应的字体。比如英文的系统里,没有安装中文的字体,导致中文无法显示。
  2. 编码不支持 即 OS 系统里没有对应的编码集。比如英文系统里,可能没有 GBK 编码集。特别是 Linux 系统里不支持 GBK 编码。会导致一些从 Windows 过来的解压出来的文件乱码。
  3. 编码不一致 这个是最常见的问题。编辑器编码与文本的原始编码不一致。网页的编码与数据库的不一致。等等。

乱码的解决

前两种都需要安装相应的字体或者编码集来解决。有时候还需要系统的功能增强来实现。 后面的主要就是要校正编码一致性即可。统一成 UTF-8 有利于解决乱码的问题。