GBK 是中文 Windows 长期使用的汉字编码,全称《汉字内码扩展规范》,1995 年发布。下面重点说明还原步骤与常见错误。
GBK解码方法
解码方向:读到大于 0x80 的字节,就与下一字节组合查表得到汉字。
- Python、Java 在中文 Windows 上默认编码可能是 GBK,读 UTF-8 文件要显式指定编码
- GBK 的尾字节可能是 0x5C(反斜杠),老程序处理“\”时可能截断汉字
示例
输入:2026-11-11
编码结果:32 30 32 36 2D 31 31 2D 31 31
说明:按 GBK 共 10 字节。
与相关技术的区别
GBK 与 GB2312:GB2312 只有 6,763 个简体汉字,GBK 扩展到 2 万多个,包括繁体字。GBK 与 GB18030:GB18030 兼容 GBK 并用 4 字节编码覆盖全部 Unicode。GBK 与 UTF-8:UTF-8 是国际通用编码,GBK 只适合中文环境。
Java 示例
下面是 Java 中处理GBK的常用写法:
byte[] b = "中".getBytes("GBK"); // [-42, -48]
String s = new String(b, "GBK");
new InputStreamReader(new FileInputStream(f), "GBK");运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的字符编码检测工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【GBK 文件怎么转 UTF-8?】用 iconv -f GBK -t UTF-8,或在编辑器中以 GBK 打开后另存为 UTF-8。
【GBK 和 GB2312 有什么区别?】GBK 是 GB2312 的扩展,收字更多,包含繁体字;GB2312 编码的文本可以直接按 GBK 读取。
【一个汉字在 GBK 中占几个字节?】2 个字节。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。