将表从 latin1 更新为 utf8 是否安全

Is it safe to update tables from latin1 to utf8

在为客户检查他们的网站是否仍然正常运行时,我发现了一个随机页面,其中包含一堆奇怪的字符,例如 ¿½

我认为这与 table 具有 latin1 编码而非 utf-8 编码有关。但是看到没有其他使用相同 table 的页面受到影响,是否会出现另一个错误。我确实检查了文本本身是否安全,并确保它只是干净的文本。

所以我有 2 个问题,主要问题是将这个 table 更新为 utf8 是否安全,如果不是,是什么导致了这个错误,想知道为什么这只会影响某个特定的人页。 (旁注该网站是使用 typo3 构建的)
当然,我有实例的链接是:
Site 1: With weird text characters
Site 2: Same table, but no weird characters

最终连接到数据库的客户端决定如何处理它们的编码;这就是众所周知的 连接编码 。无论文本以何种编码方式存储在 MySQL 中,它都将即时转换为 to/from 客户端的连接编码。因此,仅将基础列的存储更改为 utf8 不会影响任何内容。

然而,这本身也不会 "fix" 任何东西。角色仍然是垃圾。您还必须将实际字符转换为正确的数据。否则,您只会将“¿½”编码为 utf8 而不是将“¿½”编码为 latin1。更改这些字符 可能会影响到目前为止一直做错的任何其他客户端,因此需要同时修复客户端。