10.4.11-MariaDB (MySql) 和 PHP 7.2.29 UTF-8 编码问题

我在从 MariaDB 数据库中获取 UTF-8 编码的字符串时遇到问题。今天我将我的 XAMPP-Distro 更新为 10.4.11-MariaDB (MySql) 和 PHP 7.2.29,现在出现了一个奇怪的问题,旧版本没有出现过。

初步信息: 我正在将工作中的 MariaDB 数据库(生产系统)的数据库转储中的数据导入到我的本地数据库。并且在本地数据库上出现问题。

当我通过 PHP (mysqli) 将本地系统上的查询发送到数据库时(代码与生产系统上的代码相同),我得到了错误的编码:

http://img2.mukewang.com/63aea666000113d401380033.jpg

如果我使用以下 php 函数包装数据库中的文本

utf8_decode($textFromTheDatabase);

一切正常。

我还在每个查询之前尝试了以下几行,但这并没有改变任何东西:

$dbConnection->set_charset('utf8');
$dbConnection->query("SET NAMES 'utf8'");

如上所述,一切都适用于生产系统,但不适用于新的 XAMPP 安装。当我的本地系统上仍然有旧的 XAMPP 版本时,一切正常。所以我认为我的本地数据库或 PHP 或 Apache 的配置有问题?


叮当猫咪
浏览 119回答 2
2回答

小怪兽爱吃肉

不要使用任何解码功能;那只会让事情变得更糟。您的图片显示了“Mojibake”问题。原因在这里讨论: Trouble with UTF-8 characters;我看到的不是我储存的

PIPIONE

好的,现在我有了解决问题的方法:我用 PHP 7.4.4 和 MariaDB 10.4.11 更新到 XAMPP 7.4.4。然后我正确设置字符集和排序规则:character-set-server = latin1collation-server = latin1_swedish_ci然后它起作用了
打开App,查看更多内容
随时随地看视频慕课网APP