PHP returns 符号而不是 MySql 的结果 - 尽管我使用的是 setcharset "latin1"
PHP returns symbols instead of scandics in result from MySql - although I'm using setcharset "latin1"
我有这个代码:
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,'latin1_swedish_ci');
echo mysqli_character_set_name($conn);
$sql = "SELECT * FROM ggg";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "keyword: " . $row["keyword"]. " - Name: " . $row["firstname"]. " " . $row["lastname"] . $row["info"] . "<br>";
}
} else {
echo "0 results";
}
回显结果中的 $row["info"] 部分在矩形内充满了问号,而不是瑞典语符号“å、ä、ö”。虽然字符集正确设置为“latin1_swedish_ci”,但它与数据库中的完全相同(我从 phpMyAdmin 检查过)。
接下来要尝试什么,有人有什么想法吗?
首先,您可能想使用 utf8 或 utf8mb4,除非您有理由不这样做。
我的猜测是您所看到的并不是数据库的问题,而是浏览器中的渲染问题,浏览器不知道如何显示您提供的内容。
您可以在 chrome 中使用扩展程序或其他浏览器以其他方式验证是否属于这种情况。
或者,在 HTML 中设置文档 headers 这样浏览器就不必猜测 :)
我有这个代码:
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,'latin1_swedish_ci');
echo mysqli_character_set_name($conn);
$sql = "SELECT * FROM ggg";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "keyword: " . $row["keyword"]. " - Name: " . $row["firstname"]. " " . $row["lastname"] . $row["info"] . "<br>";
}
} else {
echo "0 results";
}
回显结果中的 $row["info"] 部分在矩形内充满了问号,而不是瑞典语符号“å、ä、ö”。虽然字符集正确设置为“latin1_swedish_ci”,但它与数据库中的完全相同(我从 phpMyAdmin 检查过)。
接下来要尝试什么,有人有什么想法吗?
首先,您可能想使用 utf8 或 utf8mb4,除非您有理由不这样做。
我的猜测是您所看到的并不是数据库的问题,而是浏览器中的渲染问题,浏览器不知道如何显示您提供的内容。
您可以在 chrome 中使用扩展程序或其他浏览器以其他方式验证是否属于这种情况。
或者,在 HTML 中设置文档 headers 这样浏览器就不必猜测 :)