关于Unicode编码

文章目录

    • 缩写定义
    • Unicode
    • UTF-8编码规则
    • UTF-8 with BOM
    • 一些编辑器设置编码方式
      • eclipse
      • sublime text3

缩写定义

UTF–Unicode Transformation Format ,通用转换格式;

常见的UTF格式有:UTF-7, UTF-7.5, UTF-8,UTF-16, 以及 UTF-32。

BOM–Byte Order Mark,字节序标记;

Unicode

Unicode 可以使用的编码有三种,分别是:

  1. UFT-8:一种变长的编码方案,使用 1~6 个字节来存储;
  2. UFT-32:一种固定长度的编码方案,不管字符编号大小,始终使用 4 个字节来存储;
  3. UTF-16:介于 UTF-8 和 UTF-32 之间,使用 2 个或者 4 个字节来存储,长度既固定又可变。

UTF-8编码规则

如果只有一个字节则其最高二进制位为0;
如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。UTF-8转换表表示如下:

Unicode/UCS-4 bit数 UTF-8 byte数 备注
0000 ~007F 0~7 0XXX XXXX 1
0080 ~07FF 8~11 110X XXXX
10XX XXXX
2
0800 ~FFFF 12~16 1110XXXX
10XX XXXX
10XX XXXX
3 基本定义范围:0~FFFF
1 0000 ~1F FFFF 17~21 1111 0XXX
10XX XXXX
10XX XXXX
10XX XXXX
4 Unicode6.1定义范围:0~10 FFFF
20 0000 ~3FF FFFF 22~26 1111 10XX
10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX
5 说明:此非unicode编码范围,属于UCS-4 编码早期的规范
UTF-8可以到达6字节序列,
可以覆盖到31位元(通用字符集原来的极限)。尽管如此,
2003年11月UTF-8 被 RFC 3629 重新规范,
只能使用原来Unicode定义的区域, U+0000到U+10FFFF。
根据规范,这些字节值将无法出现在合法 UTF-8序列中
400 0000 ~7FFF FFFF 27~31 1111 110X
10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX
6 同上

UTF-8 with BOM

UTF-8不需要BOM来表明字节顺序;不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯
utf-8 with bom比utf-8多了三个字节前缀:0xEF0xBB0xBF
有这三个字节前缀的文本或字符串,程序可以自动判断它为utf-8格式,并按照utf-8格式来解析文本或字符串,否则,一个文本或者字符串在未知编码的情况下,需要按照字符编码规范去一个个验证
一般认为UTF-8 的网页代码不应使用 BOM,否则常常会出错。

一些编辑器设置编码方式

eclipse

项目中右键 选择属性
关于Unicode编码_第1张图片
然后在文件编码里选择
关于Unicode编码_第2张图片

sublime text3

文件->作为编码保存->选择你要的编码格式
关于Unicode编码_第3张图片

你可能感兴趣的:(编码)