我想在我的数据库上使用丹麦字符(MySqli(
通常这不是问题,我一直在运行我的代码,完全没有问题。当我最近更改为 Unoeuro 时,没有任何效果 - 相同的代码,相同的数据库,除了托管服务之外什么都没有改变。
这是我连接到数据库的方式
<?
$conn=mysqli_connect("MyHost","MyUser","MyPass","MyDB");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_set_charset($conn,"utf8");
?>
与 databse 的连接工作完美,但是当我向数据库发送丹麦字符时,它会更改为另一个未知字符。
这是我将数据发送到 mysqli 的页面示例:
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<?
include "config.php"; //The Database connection
/*
Here are a lot of variables, not important in this question
*/
mysqli_query($con,"INSERT INTO WaterWithdrawalLog (XUserID, Location, antalLiter,chipId,note) VALUES('$xuid','$location','$MinusAntalLiter','$usrid','".$_GET["note"]."')");
?>
数据库设置为UTF8_danish_ci
如何让丹麦字符在我的数据库中正确显示?
使用此代码。
$conn->query("SET character_set_results=UTF8_danish_ci");
$conn->query("SET names=UTF8_danish_ci");
$conn->query("SET character_set_client=UTF8_danish_ci");
$conn->query("SET character_set_connection=UTF8_danish_ci");
$conn->query("SET character_set_results=UTF8_danish_ci");
$conn->query("SET collation_connection=UTF8_danish_ci");
并将这样的元标记放在 HTML 页面上。
<meta charset="UTF8_danish_ci">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
这应该可以做到。