本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/03/23/%E4%BB%80%E4%B9%88%E6%98%AFUTF-32/
摘要
本文主要讲述了:
- 什么是 UTF-32
- 编码规则
- 解码规则
正文
什么是 UTF-32
UTF-32 是一种定宽的 Unicode 字符编码方案。它使用 4 个字节编码 Unicode 字符。
编码规则
UTF-32 编码和 Unicode 码点相等。
示例:将eng
进行 UTF-32 编码。
根据 Unicode 码表,
e
的 Unicode 码点为U+0065
。e
的十六进制 UTF-32BE 编码为00 00 00 65
,UTF-32LE 编码为65 00 00 00
。根据 Unicode 码表,
n
的 Unicode 码点为U+006E
。n
的十六进制 UTF-32BE 编码为00 00 00 6E
,UTF-32LE 编码为6E 00 00 00
。根据 Unicode 码表,
g
的 Unicode 码点为U+0067
。g
的十六进制 UTF-32BE 编码为00 00 00 67
,UTF-32LE 编码为67 00 00 00
。综上所述,
eng
的 UTF-32BE 编码为00 00 00 65 00 00 00 6E 00 00 00 67
,UTF-32LE 编码为65 00 00 00 6E 00 00 00 67 00 00 00
。
示例:将中文
进行 UTF-32 编码。
根据 Unicode 码表,
中
的 Unicode 码点为U+4E2D
。中
的十六进制 UTF-32BE 编码为00 00 4E 2D
,UTF-32LE 编码为2D 4E 00 00
。根据 Unicode 码表,
文
的 Unicode 码点为U+6587
。文
的十六进制 UTF-32BE 编码为00 00 65 87
,UTF-32LE 编码为87 65 00 00
。综上所述,
中文
的 UTF-32BE 编码为00 00 4E 2D 00 00 65 87
,UTF-32LE 编码为2D 4E 00 00 87 65 00 00
。
解码规则
UTF-32 编码和 Unicode 码点相等。
示例:将00 00 00 65 00 00 00 6E 00 00 00 67
进行 UTF-32BE 解码。
00 00 00 65
就是U+0065
。根据 Unicode 码表,
U+0065
对应的 Unicode 字符是e
。00 00 00 6E
就是U+006E
。根据 Unicode 码表,
U+006E
对应的 Unicode 字符是n
。00 00 00 67
就是U+0067
。根据 Unicode 码表,
U+0067
对应的 Unicode 字符是g
。综上所述,
00 00 00 65 00 00 00 6E 00 00 00 67
的 UTF-32BE 解码结果就是eng
。
示例:将65 00 00 00 6E 00 00 00 67 00 00 00
进行 UTF-32LE 解码。
65 00 00 00
属于 LE 编码,换算为 BE 编码为00 00 00 65
。00 00 00 65
就是U+0065
。根据 Unicode 码表,
U+0065
对应的 Unicode 字符是e
。6E 00 00 00
属于 LE 编码,换算为 BE 编码为00 00 00 6E
。00 00 00 6E
就是U+006E
。根据 Unicode 码表,
U+006E
对应的 Unicode 字符是n
。67 00 00 00
属于 LE 编码,换算为 BE 编码为00 00 00 67
。00 00 00 67
就是U+0067
。根据 Unicode 码表,
U+0067
对应的 Unicode 字符是g
。综上所述,
65 00 00 00 6E 00 00 00 67 00 00 00
的 UTF-32LE 解码结果就是eng
。
示例:将00 00 4E 2D 00 00 65 87
进行 UTF-32BE 解码。
00 00 4E 2D
就是U+4E2D
。根据 Unicode 码表,
U+4E2D
对应的 Unicode 字符是中
。00 00 65 87
就是U+6587
。根据 Unicode 码表,
U+6587
对应的 Unicode 字符是文
。综上所述,
00 00 4E 2D 00 00 65 87
的 UTF-32BE 解码结果就是中文
。
示例:将2D 4E 00 00 87 65 00 00
进行 UTF-32LE 解码。
2D 4E 00 00
属于 LE 编码,换算为 BE 编码为00 00 4E 2D
。00 00 4E 2D
就是U+4E2D
。根据 Unicode 码表,
U+4E2D
对应的 Unicode 字符是中
。87 65 00 00
属于 LE 编码,换算为 BE 编码为00 00 65 87
。00 00 65 87
就是U+6587
。根据 Unicode 码表,
U+6587
对应的 Unicode 字符是文
。综上所述,
2D 4E 00 00 87 65 00 00
的 UTF-32LE 解码结果就是中文
。
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/03/23/%E4%BB%80%E4%B9%88%E6%98%AFUTF-32/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/03/23/%E4%BB%80%E4%B9%88%E6%98%AFUTF-32/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。