使用PHP显示时,MySQL数据的编码错误
我完全卡住了 我有一个在PHP4和MySQL4上运行的旧网站。SQL数据包含斯洛伐克特殊字符(á、ť、ť、ľ、ž等)。旧站点可以很好地显示字符 我已经将该站点迁移到一个新主机上,它现在运行在PHP7.3和MariaDB 10.3上。我用MySQLi替换了不推荐使用的mysql函数,现在代码运行良好。然而,角色完全是一团糟 我遇到了许多问题和答案,以下是我尝试过的:使用PHP显示时,MySQL数据的编码错误,php,mysql,encoding,utf-8,character-encoding,Php,Mysql,Encoding,Utf 8,Character Encoding,我完全卡住了 我有一个在PHP4和MySQL4上运行的旧网站。SQL数据包含斯洛伐克特殊字符(á、ť、ť、ľ、ž等)。旧站点可以很好地显示字符 我已经将该站点迁移到一个新主机上,它现在运行在PHP7.3和MariaDB 10.3上。我用MySQLi替换了不推荐使用的mysql函数,现在代码运行良好。然而,角色完全是一团糟 我遇到了许多问题和答案,以下是我尝试过的: 将字符集设置为utf8和/或将windows-1250设置为mysqli连接 $link->set_字符集(“utf8mb4”);
$link->set_字符集(“utf8mb4”);
mysqli_set_字符集($mysqli,“utf8”)代码>
header('Content-Type:text/html;charset=utf-8')代码>
ALTER数据库数据库名称字符集utf8 COLLATE utf8\u unicode\u ci;
ALTER TABLE tablename转换为字符集utf8 COLLATE utf8\U unicode\U ci代码>
$output=iconv(“Windows-1250”、“UTF-8”($output))代码>
我真的被卡住了,我真的认为我已经尝试了所有的解决方法。可能是什么问题?好的。和的评论帮助我意识到新唱片工作得很好。只有数据库中的旧数据被弄乱了。对我来说,创建一个简单的矩阵,将编码错误的字符与正确的字符配对,然后用简单的SQL查询来更新它们更容易。谢谢您的帮助。您是否尝试过删除一行/添加一行字母相同的新行?服务器更新时,表行可能会出错。您还可以尝试创建一个新数据库,看看该数据库的格式是否也有问题。您能告诉我们应该显示什么以及现在显示什么吗?使用一些insert DATA或attach table为您的表创建查询,以便我们可以看到有助于调试的内容:
SELECT HEX(col),单击…
查看表中的内容。