当前位置: 首页 > news >正文

汉字编码之GBK编码详解

汉字编码之GBK编码详解

GBK(Guo Biao Kuozhan,国家标准扩展)是一种中文字符编码标准,主要用于简体中文的字符表示。它是对GB2312-80标准的扩展,包含了更多的汉字和符号,广泛应用于Windows系统、网页、数据库等中文信息处理环境中。


一、GBK 编码的基本背景

1. GB2312 简介

  • GB2312 是中国大陆于1980年发布的第一个汉字编码标准。
  • 包含 6763 个常用汉字(一级 3755 个,二级 3008 个),以及 682 个标点符号、数字、拉丁字母等。
  • 使用双字节编码方式,每个汉字用两个字节表示。
  • 字节范围:首字节 0xB0-0xF7,尾字节 0xA1-0xFE

2. GBK 的提出

  • 随着使用需求的增加,GB2312 中的汉字数量不足以满足实际应用。
  • 于是微软在 Windows 系统中推出 GBK 编码,作为对 GB2312 的兼容性扩展。
  • GBK 并非正式国家标准,但后来被收录进 GB/T 13000.1-1993(即 Unicode 的中国对应标准)中,并最终被 GB18030 所取代。

二、GBK 编码的特点

特性描述
编码类型双字节编码(部分单字节 ASCII 兼容)
支持字符数约 21003 个汉字(包括繁体字、少数民族文字等)
向后兼容完全兼容 GB2312 和 ASCII
应用环境Windows 简体中文系统、早期网页、数据库、邮件等

三、GBK 编码结构

GBK 编码空间为:

  • 首字节范围0x81-0xFE
  • 尾字节范围
    • 0x40-0x7E(共 63 个)
    • 0x80-0xFE(共 127 个)

总共可以表示 (0xFE - 0x81 + 1) * (63 + 127) = 大约 21000+ 个字符。

GBK 编码分为多个区段(Zone),如下所示:

区号范围(首字节, 尾字节)内容说明
18140-FEFEGB2312 原有字符(向后兼容)
2A1A1-A9FE符号、部首、特殊字符
3B0A1-F7FEGB2312 区段,包含常用汉字
47440-7D7E增补汉字(如“镕”、“堃”)
5A6A1-A6FE希腊字母、俄语字母等
6AD00-AD7E日文平假名
7FA40-FEFE扩展汉字(包括生僻字、少数民族文字等)

四、GBK 与常见编码的比较

编码格式支持字符数是否支持繁体是否支持生僻字是否兼容 ASCII备注
ASCII128英文字符集
GB2312~6763简体中文基础
GBK~21003GB2312 扩展
GB18030> 70,000国家标准,兼容 GBK
Unicode (UTF-8/UCS-2)> 100,000是(UTF-8)国际通用编码

五、GBK 编码的应用现状

虽然目前 UTF-8 已成为互联网主流编码格式,但 GBK 在以下场景仍有广泛应用:

  1. Windows 简体中文系统:默认编码是 GBK。
  2. 旧系统的数据迁移:许多遗留系统仍使用 GBK 编码保存历史数据。
  3. 网页开发中的传统网站:一些老网站仍然使用 GBK 编码。
  4. 数据库导出文件:如 MySQL 导出时设置为 GBK 编码。

六、GBK 编码示例

汉字GBK 编码(十六进制)十进制表示
CED20xCED2
CAC70xCAC7
D1A70xD1A7
C9FA0xC9FA

例如,“我是学生”的 GBK 编码为:

CED2 CAC7 D1A7 C9FA

七、如何识别或转换 GBK 编码?

1. 使用 Python 进行编码转换

# 读取 GBK 编码文件
with open('file.txt', 'r', encoding='gbk') as f:content = f.read()print(content)# 字符串转 GBK 编码
s = "你好"
print(s.encode('gbk'))  # b'\xc4\xe3\xba\xc3'# GBK 编码转字符串
b = b'\xc4\xe3\xba\xc3'
print(b.decode('gbk'))  # 输出:你好

2. 使用在线工具

  • https://www.qqxiuzi.cn/zh/hanzi-gbk.php
  • https://tool.oschina.net/encode

八、总结

项目内容
名称GBK(国标扩展)
类型双字节编码
支持字符约 21003 个
向后兼容GB2312、ASCII
替代方案GB18030、UTF-8
主要用途Windows 简体中文、旧系统数据、网页等

相关文章:

  • 郑州电子商务网站建设推广文案范例
  • 武汉做网站的公司怎样搭建自己的网站
  • 网站的flash怎么做新闻发布会
  • 做网站导航按钮怎么做360指数官网
  • vi设计毕业论文范文seo云优化如何
  • logo网站设计素材柳州今日头条新闻
  • 数据结构 顺序表与链表
  • Spring Cloud Ribbon核心负载均衡算法详解
  • SDC命令详解:使用write_sdc命令进行输出
  • 高等数学》(同济大学·第7版)第七章 微分方程 第五节可降阶的高阶微分方程
  • Feign源码解析:动态代理与HTTP请求全流程
  • Azure虚拟机添加磁盘
  • 企业级RAG系统架构设计与实现指南(Java技术栈)
  • 深入学习入门--(一)前备知识
  • Java基础黑马进阶综合考试
  • 网络安全漏洞扫描是什么?如何识别目标进行扫描?
  • 理解epoll:水平触发与边沿触发
  • (C++)vector数组相关基础用法(C++教程)(STL库基础教程)
  • 《从0到1:C/C++音视频开发自学指南》
  • 多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文
  • 家用存储怎么选?NAS vS 硬盘柜,备份游戏素材与照片谁更合适?
  • vue2 使用el-form中el-form-item单独绑定rules不生效问题
  • 51c嵌入式~CAN~合集2
  • 学习日记-spring-day37-6.25
  • C++11原子操作:从入门到精通
  • 西游记12:观世音菩萨送袈裟和禅杖;菩萨现身,教导大乘佛法三藏;御弟圣僧;宁恋本乡一捻(niǎn)土,莫爱他乡万两金。