gpt4 book ai didi

php - MySQL 中带有问号而不是瑞典字符的菱形/菱形

转载 作者:可可西里 更新时间:2023-11-01 09:05:44 30 4
gpt4 key购买 nike

我最近将数据库的内容从一台主机移到了另一台主机。在那之后我得到了奇怪的字符,比如两个菱形或菱形,里面有问号而不是瑞典字符 ä

我之前在第一台主机上遇到过这个问题,然后我添加了这段代码,它工作正常

$query1 = "SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'";

$query2 = "SELECT * FROM arkitekturobjekt2 WHERE filnamn='{$namn}';";

$result = $db->query($query1);
$result = $db->query($query2);

如果我删除带有 $query1 的行,我只会得到一个菱形。我该如何解决这个问题?

编辑:这是我的代码,这里是将字符串与数据库中的内容放在一起的循环。我测试了在 ($row->byggnadstyp) 周围使用 utf8_encode(string) 但后来我得到了其他奇怪的字符。但最后我测试删除 strtolower 然后它是完美的,除了第一个字符不小。但我可以接受,但我很想知道为什么我在使用 strtolower 时会得到这些钻石。我在任何地方都使用 utf8,文件设置为没有 BOM 的 utf8。

$buildingInfo .= "<p>Byggnadstyp: " . strtolower ($row->byggnadstyp) . "</p>";

最佳答案

您可以尝试将此添加到您的 mysql 配置中:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
default-character-set = utf8
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
skip-character-set-client-handshake=1

可能不需要最后一行 (skip-character-set-client-handshake=1)。

如果您无权访问配置文件,您可以查看此 help page .基本上归结为发送命令

SET NAMES 'UTF8';

在连接的开始。然而,这与您已经执行的操作类似。

关于php - MySQL 中带有问号而不是瑞典字符的菱形/菱形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31365728/

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