ASCII、unicode、utf
机器只认识 1 和 0 ,所以人为了能用自己的语言与机器交互,规定出了各种 二进制与语言字符的对应关系,即编码 。
最早普及的编码集为 ASCII 码,它用一个字节(8位二进制)规定了128个字符的编码(首位二进制统一为0,2^7个),主要都是英文字符。
英语使用 ASCII 中规定的128个字符就足够了, 但是却远远不足以表示其他语言,即使是利用上首位的二进制 ,于是出现了各国语言的编码,比如支持简体中文的 GB2312 ,支持繁体中文的 BIG5 。使得在解析文件时还需要注意它的编码格式,否则就会乱码,因为不同的编码对二进制会有不同的解读。
unicode 码在这种背景下诞生了, 它统一了全世界的语言符号 。使用 U+**** 表示, * 为16进制数.
unicode 在实际应用中是有问题的,比如 对于多字节字符,如何让机器知道这是一个字符而不是多个字符 ,所以在与机器实际交互中,需要将unicode转换格式后使用,这就出现了UTF(UTF,是UnicodeTransformationFormat的缩写,意为Unicode转换格式),包括utf-32、utf-16、utf-8等等。
规则: 每个码点使用四个字节表示,字节内容一一对应 unicode 码点
缺点: 浪费空间 。如果一个全是英文的文件,每个字符都会浪费三个字节的空间,因为每个英文字符一个字节就可以表示。
规则:
规则:
2024-10-28 广告