GBK 是中文 Windows 长期使用的汉字编码,全称《汉字内码扩展规范》,1995 年发布。下面重点说明处理过程分步说明。
GBK原理
GBK 采用双字节编码:首字节大于 0x80 就表示它和下一个字节组成一个汉字。例如“中”是 D6 D0,“文”是 CE C4。它与 Unicode 码点没有数学关系,转换时需要查码表。
示例
输入:123问
编码结果:31 32 33 CE CA
说明:按 GBK 共 5 字节。
核心要点
- 兼容 GB2312:GB2312 的 6,763 个汉字编码在 GBK 中不变
- 汉字 2 字节,首字节 0x81–0xFE,尾字节 0x40–0xFE(不含 0x7F)
- ASCII 字符 1 字节,与 ASCII 相同
- 不能表示 emoji 和大多数外文字符
- GB18030 是 GBK 的超集,覆盖全部 Unicode,是国家强制标准
常见报错
- UnicodeDecodeError: 'gbk' codec can't decode byte 0xad:文件实际是 UTF-8
- UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f600':GBK 无法表示 emoji,改用 UTF-8 或 errors="replace"
- Java 读文件乱码:FileReader 使用了系统默认编码,改用 InputStreamReader 指定字符集
- 网页显示“锘”开头:UTF-8 BOM 被按 GBK 解读
本站的字符编码检测工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【GBK 能存 emoji 吗?】不能,需要 UTF-8 或 GB18030。
【Excel 打开 UTF-8 的 CSV 乱码怎么办?】把 CSV 保存为带 BOM 的 UTF-8,或通过“数据 → 从文本”导入并选择 UTF-8。
【GBK 文件怎么转 UTF-8?】用 iconv -f GBK -t UTF-8,或在编辑器中以 GBK 打开后另存为 UTF-8。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。