gpt4 book ai didi

php - 返回非 UTF8 字符的 MySQL 查询

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:08 26 4
gpt4 key购买 nike

我有一个登录屏幕,可以根据 MySQL 数据库检查输入的用户名和密码。我的问题是它无法识别“ÅÄÖ”等瑞典语字符。

例如,密码“lösenord”在数据库中但不被接受,但是“losenord”是。

数据库有“utf8_general_ci”连接排序规则,我在我的 index.html 中将字符集设置为 UTF-8,但在我的 php 脚本中没有。我读过一百万种不同的方法来解决像这样的 UTF 8 问题,但我无法让它发挥作用。

如果有人至少能为我指出正确的方向,我将非常感激。我是否需要对每个 mysql 查询进行编码,设置一些 META 标记?

干杯

最佳答案

连接到 MySQL 后尝试使用 SET NAMES 'UTF8':

$con=mysqli_connect("host", "user", "pw", "db");   
if (!$con)
{
die('Failed to connect to mySQL: ' .mysqli_connect_errno());
}

/* change character set to utf8 */
if (!$con->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $con->error);
}

作为manual说:

SET NAMES indicates what character set the client will use to send SQLstatements to the server... It also specifies the character set that the server shoulduse for sending results back to the client.

还要在你的表中使用 utf8_swedish_ci,否则字符串比较会出错,MySQL 会将 'ö' 和 'o' 视为相同的字符。

关于php - 返回非 UTF8 字符的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16734044/

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