【发布时间】:2011-02-28 15:06:04
【问题描述】:
所以,我已经在这个系统上构建了很长时间,它目前正在将 Latin1 (ISO-8859-1) 输出到 Web 浏览器,这是组件:
MySQL - 所有数据都以 Latin1 字符集存储
PHP - 所有 PHP 文本文件都以 Latin1 编码存储在磁盘上
HTML - 输出包含 http-equiv="content-type" content="text/html; charset=iso-8859-1" 元标记
所以,我试图了解不同部分的编码如何在我的工作流程中发挥作用。如果我打开一个 PHP 脚本并将其在文本编辑器中的编码更改为 UTF-8 并将其保存回磁盘并重新加载 Web 浏览器,那么文本就会一团糟——除非文本来自数据库。如果我将数据库的编码更改为 UTF-8 并将 PHP 文件保留在 latin1 中,我必须使用 utf8_decode() 才能正确显示数据。如果我更改 HTML 代码,浏览器会错误地读取它。
所以是的,我意识到如果我想“升级”到 UTF8,我必须更新此设置的所有三个部分才能使其正常工作,但由于它是一个庞大的系统,包含大约 180k 行 PHP 代码和数百万行很多数据库/表中的帖子,我不想在没有正确理解所有内容的情况下开始这样的事情。
我没有想到什么?除了修复之外,还有什么可以搞砸的?更改整个 MySQL 安装的编码的过程是什么?更改磁盘上数百或数千个 PHP 文件的编码的最简单方法是什么?
幸运的是,META 标签是动态添加的,所以我只在一处进行更改:)
让我听听你在这方面的经验。
【问题讨论】: