我最近在将 latin1_swedish 数据库导入新数据库时遇到了问题。Somone 制作了 Latin1 数据库来存储 Latin2 字符。在我进行数据库转储并想将其导入另一个数据库之前,一切正常。
这真的很复杂。最后,我将 sql 转储更正为正确的 ISO-8859-2 编码文件,所有字符都正确显示。仍然无法使用 Latin2 编码导入表,所有特殊字符都丢失了(可能是 PHPMyAdmin 错误?)。
将文件转换为 UTF-8 编码并将表编码更改为 utf8_general_ci 正确导入了所有内容。
接下来,整个 PHP 站点使用并显示 ISO-8859-2 字符(它的旧 PHPBB 论坛)。
在连接到数据库时,我使用“SET NAMES latin2”命令来更改编码。
令我惊讶的是,页面显示为正确的 ISO-8859-2。
如果 table 是 UTF-8 并且 Set names 是 latin2。MySQL连接是否在返回字符之前将字符转换为ISO-8859-2???
(不知道我是否应该全部写下来。如果我放了太多不需要的信息,请编辑它)