utf8_encode SQL 和 PHP 结果之间的差异

utf8_encode difference between result in SQL and PHP

我正在使用 utf8_encode 来确保我的用户的输入将特殊字符转换为我的 MYSQL 可以搜索的字符。 (我的数据库设置在latin1_swedish.ci)。

当我回应我的查询时,我得到了一个完美的查询,我可以 运行 反对我的 MYSQL(我得到了一个结果)。但是当我通过 PHP 执行相同的查询时,它不起作用。

$name = 'Widerøe';
$name = utf8_encode($name);

SELECT id FROM type WHERE name = '$name' LIMIT 1
SELECT id FROM type WHERE name = 'Widerøe' LIMIT 1

$data = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM types WHERE name = '$name' LIMIT 1"));
$operator_id = $data['id'];

我找到了一个(简单的)修复方法。我删除了 utf8_encode 并将以下元标记放在 body.

的头部
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>