【问题标题】:utf8_encode difference between result in SQL and PHPSQL和PHP中结果之间的utf8_encode区别
【发布时间】:2021-04-25 05:59:39
【问题描述】:

我正在使用 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'];

【问题讨论】:

  • 您似乎只将查询放入您的 PHP 中,这不是 MySQL 在 PHP 中的工作方式。这是一个教程:mysqltutorial.org/php-mysql
  • 我认为我正确地执行了查询,我将它添加到我的原始线程中!
  • 如果你对一个已经在 utf8 中的字符串进行编码,你就是在销毁它......
  • 我不明白,数据库中的值是 Widerøe 而不是 Widerøe。谢谢!

标签: php mysql sql utf-8


【解决方案1】:

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

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

【讨论】:

  • 您在问题中没有提到 HTML,而这(完全避免 UTF-8)应该是答案?
猜你喜欢
  • 1970-01-01
  • 2019-02-14
  • 2013-09-13
  • 2018-01-05
  • 2020-11-20
  • 1970-01-01
  • 2013-03-11
  • 1970-01-01
  • 2022-10-24
相关资源
最近更新 更多