本文作者: 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) 进行许可。