有什么理由将代码保存为 GBK 编码
针对这个问题的短回答就是:没有任何理由保存代码为 GBK。
将项目的文件或者数据库字符集等设计到编码的地方使用 GBK,会带来很严重的兼容性问题。
保存为 GBK 通常是历史遗留问题,尤其是老的 C/S 架构项目,代码多为 GB2312 / GBK ,在早期的 Java EJB 项目中很多也会使用 GBK。
在 GBK 之前其实有一个更早的 GB2312 编码,这个编码字符集太小,经常乱码,才有了后面的 GBK,GBK 帮助解决了不少问题。
随之 WEB 环境的快速演进,目前项目中包括数据库通常都会使用 UTF-8 编码,包括数据库驱动之间也会使用 UTF-8。
其实很简单,如果你的项目就只是中国国内用用,你的字符集绝大部分是中文和英文,GBK 也差不多够用了。
如果要使用日文,韩文,德文,你怎么办。
页面 UTF-8,数据层 GBK,这里就要涉及到转码,这个是有代价的,其实也根本也没有什么必要,全部用 UTF-8 就行了。
还有就是文件的编码,如果文件编码是 GBK,用编辑器还得为 IDE 设置特定的字符集,不是闲着没事找事嘛,直接用 UTF-8,解决所有问题。
另外操作系统曾经也是不少问题,Unix 类似的系统基本上都是 UTF-8 的配置,你写的项目部署上去就是乱码,这不是闲着蛋疼。
另外 GBK 也不是最新的字符集了,如果非要用应该要使用 GB18030 字符集,这个字符集版本更新。
拿着 GBK 不想换的,基本上是老项目多,公司也不愿意折腾去维护,自己用户群基本上没有其他语言级的需求,另外也就上面懒得换而已。
其实不仅仅是中文有这个问题,到目前还有很多英文项目还只使用 ISO 8859-1 字符集,这个字符集只能使用英文,不得不说如果选用这个字符集同样也是非常短视的行为。
都 2021 年,这个问题压根就不应该存在了,UTF-8 目前基本是项目的标配。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-08-09 MessagePack Java Jackson Dataformat - 列表(List)的序列化和反序列化
2019-08-09 MessagePack Java Jackson Dataformat - POJO 的序列化和反序列化
2019-08-09 MessagePack Java Jackson Dataformat - 安装
2018-08-09 Confluence 6 通过 SSL 或 HTTPS 运行 - 备注和问题解决
2018-08-09 Confluence 6 通过 SSL 或 HTTPS 运行 - 为 HTTPS 修改你的 Confluence 基础 URL
2018-08-09 Confluence 6 通过 SSL 或 HTTPS 运行 - 重定向所有的 URLS 到 HTTPS 的安全考虑
2018-08-09 Confluence 6 通过 SSL 或 HTTPS 运行 - 确定你的证书路径