带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(6)

简介: 带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(6)

带你读《全景揭秘字符编码》之九:九、常见字符编码3:GB系列(5) https://developer.aliyun.com/article/1240898?groupCode=tech_library


9.4、GB18030


随着计算机的发展,GBK的2万多个字符也还是扛不住。


于是2000年我国又制定了新标准 GB18030,用来替代 GBK 标准。GB18030是强制性标准,现在在中国大陆销售的软件都支持 GB18030。


GB18030其实是对齐Unicode标准的,里面包括了所有Unicode字符集,也算是Unicode的一种实现(UTF)。


那既然有了UTF我们为什么还要搞一套Unicode实现?


主要是UTF-8/UCS-2他们是不兼容GB2312的,如果直接升级那么就全乱码了,所以GB18030是为了兼容GB系列,是GBK、GB2312的超集,当我们原先的GB2312(GBK)软件考虑升级到国际化Unicode时,可以直接使用GB18030进行升级。


GB18030虽然也是GB2312的扩展,但它和GBK的扩展方式不一样,GBK主要是充分利用了GB2312的一些没定义的编码空间,而GB18030采用的是字节变长编码,单字节区兼容ASCII、双字节区兼容GBK、四字节区对齐所有Unicode 码位。


实现原理上主要是采用第二字节未使用到的0x30~0x39编码空间来判断是否四字节。



具体就是:

  • 1)单字节,其值从0到0x7F。
  • 2) 双字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x40到0xFE(不包括0x7F)。
  • 3)四字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x30到0x39,第三个字节的值从0x81到0xFE,第四个字节的值从0x30到0x39。
相关文章
|
SQL 分布式计算 调度
深入剖析 HIVE 的锁和事务机制
深入剖析 HIVE 的锁和事务机制
freeswitch 默认拨号方案(下)
freeswitch默认拨号方案中(conf/dialplan/default.xml)设置了一些基本的测试功能和PBX电话系统功能 包含了分机互拨及简单IVR功能
|
存储 缓存 算法
P2P 视频流与 HTTP 视频流 | 学习笔记
快速学习 P2P 视频流与 HTTP 视频流,介绍了 P2P 视频流与 HTTP 视频流系统机制, 以及在实际应用过程中如何使用。
P2P 视频流与 HTTP 视频流 | 学习笔记
|
4月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
安全 Java
java BigDecimal 的赋值一个常量
在 Java 中,`BigDecimal` 是一个用于精确计算的类,特别适合处理需要高精度和小数点运算的场景。如果你需要给 `BigDecimal` 赋值一个常量,可以使用其静态方法 `valueOf` 或者直接通过字符串构造函数。 以下是几种常见的方法来给 `BigDecimal` 赋值一个常量: ### 使用 `BigDecimal.valueOf` 这是推荐的方式,因为它可以避免潜在的精度问题。 ```java import java.math.BigDecimal; public class BigDecimalExample { public static void
323 4
|
12月前
|
前端开发 JavaScript API
探索现代前端框架——React 的性能优化策略
探索现代前端框架——React 的性能优化策略
353 0
|
jenkins 持续交付 网络安全
Docker Jenkins 安装配置
Docker Jenkins 安装配置
150 1
|
负载均衡 网络协议 数据安全/隐私保护
详解配置代理和IP设置的含义
详解配置代理和IP设置的含义
720 6
|
计算机视觉 索引
【OpenCV】—ROI区域图像叠加&图像混合
【OpenCV】—ROI区域图像叠加&图像混合
227 2
|
机器学习/深度学习 传感器 算法
Matlab 基于PSO-GRU-Attention做多特征输入单输出的预测模型
Matlab 基于PSO-GRU-Attention做多特征输入单输出的预测模型