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

时间:2015-09-30 14:00:04

标签: mysql utf-8 typo3

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

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

所以我有2个问题,主要的一个是将这一个表更新为utf8是否安全,如果不是,导致此错误的原因是什么,并且想知道为什么这只会影响某个特定页面。 (附注说网站是用拼写错误3制作的)
当然我有实例的链接是:
Site 1: With weird text characters
Site 2: Same table, but no weird characters

1 个答案:

答案 0 :(得分:1)

最终,连接到数据库的客户端决定如何处理其编码;这就是所谓的连接编码。无论文本存储在MySQL中的编码是什么,它都会在运行时转换为客户端的连接编码。因此,仅将基础列的存储更改为utf8不会影响任何内容。

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