gpt4 book ai didi

php - PHP 和 MySQL 的重音字符错误

转载 作者:行者123 更新时间:2023-11-29 01:59:16 25 4
gpt4 key购买 nike

我的问题是直接用PHP写的字重音是正确的,但是当重音字来自MySQL时,字母是这样的....

我尝试将 html 字符集 用作 ISO-8859-1,它修复了 MySQL 字母,但破坏了其他字母。解决这一切的一种方法是将我的 .php 文件设置为 ISO-8859-1,但我做不到,我需要在 中使用它>utf-8 编码

我能做什么?


目前的解决方案: 在查询之前包含 mysqli_set_charset($link, "utf8");(每个连接只需要做一次)。我仍在服务器上而不是客户端上寻找决定性的解决方案。


编辑:

mysql> SHOW VARIABLES LIKE  'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+

mysql> show variables like "character_set_database";
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| character_set_database | utf8 |
+------------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like "collation_database";
+--------------------+-----------------+
| Variable_name | Value |
+--------------------+-----------------+
| collation_database | utf8_general_ci |
+--------------------+-----------------+
1 row in set (0.00 sec)

这些是我的数据库的值,但我还是做不对。

编辑2:

<meta charset="utf-8">
...
$con = mysqli_connect('localhost', 'root', 'root00--', 'eicomnor_db');
$query = "SELECT * FROM table";
$result = mysqli_query($con, $query);
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['nome'] . "</td>";
echo "</tr>";
}
mysqli_close($con);

这是 PHP 代码。

最佳答案

首先,不要尝试按照 ISO-8859-1 的方向修改您的 php 文件,那是倒退的,并且可能会导致与浏览器的兼容性问题。相反,您希望自下而上地遵循 utf-8 的路径。

祝你好运!旧数据库的字符集问题通常比最初出现的要多。

关于php - PHP 和 MySQL 的重音字符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19282115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com