有惊无险的一次网站系统升级

💡 原文中文,约3500字,阅读约需9分钟。
📝

内容提要

作者在2004年重构了2002年的PHP代码,经过多次升级,最终将网站编码改为UTF-8。在此过程中,解决了MySQL编码问题,成功将数据从GBK转换为UTF-8,并处理了相关配置。

🎯

关键要点

  • 作者在2004年重构了2002年的PHP代码,并将网站编码改为UTF-8。
  • 在升级过程中,解决了MySQL编码问题,成功将数据从GBK转换为UTF-8。
  • 作者在1997年开始学习PHP,但在2000年后没有更新知识。
  • 网站的留言板因PHP版本升级而出现问题,作者决定重构代码。
  • 作者的博客最初使用GBK编码,后来意识到UTF-8将成为主流。
  • MySQL版本升级导致数据乱码,作者关闭了MySQL服务器以防止数据损坏。
  • 作者尝试通过Google寻找解决方案,但未能找到有效的帮助。
  • 在推特上寻求帮助后,网友提供了多种解决方案。
  • 作者决定使用mysqldump导出数据库,并以binary格式进行编码转换。
  • 在转换过程中,作者发现数据中混杂着UTF-8字符串,导致iconv转换失败。
  • 作者编写了Lua程序来解析dump文件,确保正确处理编码。
  • 最终成功找到了680条UTF-8文本,并将字段编码标准替换为utf8mb4。
  • 在本地测试导入数据库时,注意到路径格式问题。
  • 完成升级后,系统基本复原,作者预计可以再使用十年。

延伸问答

作者在网站升级中遇到了哪些编码问题?

作者在升级过程中遇到了MySQL编码问题,数据从GBK转换为UTF-8时出现乱码。

作者是如何解决MySQL编码问题的?

作者使用mysqldump导出数据库,以binary格式进行编码转换,并编写Lua程序解析dump文件。

为什么作者选择将网站编码改为UTF-8?

作者意识到UTF-8将成为主流,并且许多RSS阅读器不支持GBK编码。

在升级过程中,作者使用了哪些工具和技术?

作者使用了mysqldump、iconv和Lua程序来处理编码转换和数据解析。

作者在升级前对PHP的知识更新了多少?

作者在1997年开始学习PHP,但在2000年后没有更新知识,直到此次升级才重新学习PHP手册。

升级后,作者对系统的预期是什么?

作者预计系统可以再使用十年,基本复原后只遇到少量配置问题。

🏷️

标签

➡️

继续阅读