这可能看起来像一个愚蠢的问题,我已经尝试了许多不同的解决方案来设置字符集,但没有任何帮助。我有一个每天都有不同文本的数据库,其中一些有字母åäö,当加载页面时,åäö只是作为黑色菱形中的问号可见。
它在我的另一页上完美运行,但我无法弄清楚出了什么问题。
这是我的代码。
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM xxxx WHERE xxx = 'xxxxx'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
'.$row["stackinfo"].'<br>
'.$row["monday"].'<br>
'.$row["tuesday"].'<br>
'.$row["wednesday"].'<br>
'.$row["thursday"].'<br>
'.$row["friday"].'
</body>
</html>
';
}
} else {
echo "0 results";
}
mysqli_close($conn);
此外,如果ü,ø和æ工作也会很有用。
数据库使用latin1_swedish_ci
。
提前致谢!
更新,完整的PHP,但没有表名(仅为了安全。)
<?php header('Content-Type: text/html; charset=utf-8');
define('INCLUDE_CHECK',true);
require 'connection file';
$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_database);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM xxx WHERE ClassID = 'xxx'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="card">
'.$row["stackinfo"].'<br>
'.$row["monday"].'<br>
'.$row["tuesday"].'<br>
'.$row["wednesday"].'<br>
'.$row["thursday"].'<br>
'.$row["friday"].'
</div>
</body>
</html>
';
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>