我特意谈论瑞典语中的 å、ä 和 ö。当在段落中显示时,我使用一个函数将字母替换为其 HTML 实体。
效果很好,但现在我想要一个功能,让页面管理员可以更改页面标题。我希望将当前标题预加载到输入框中。当每个 ö 都被翻译成它的 html 实体时,阅读起来就不那么容易了。
从其他答案中,我检查了文件在 Notepad++ 中是否保存为没有 BOM 的 UTF-8。
数据库连接写为:
$conn = new mysqli($DBServer, $DBUser, $DBPass, $DBName); if ($conn->connect_error) { trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); }
$conn->set_charset("utf-8");
在 html 文档的标题中,我有:
<meta http-equiv="content-type" content="text/html" charset="utf-8" />
数据库被创建为“latin1_swedish_ci”,并且在 phpmyadmin 中显示正常。数据库调用如下所示。当没有 å、ä 和 ö 时,该网站将正常工作。但是当输入框为空时。
包含“db.inc.php”;
$sql = "SELECT site_admin_title FROM site_admin WHERE site_admin_id = ?"; $id = 1;
$loadData = $conn->prepare($sql); if($loadData === false) { trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR); }
$loadData->bind_param('i',$id);
$loadData->execute();
$loadData->bind_result($site_admin_title);
$loadData->fetch();
$output_string = $ljusimorker_site_admin_title;
$loadData->close();
$conn->close();
echo json_encode($output_string);
有什么想法吗?
最佳答案
您是否尝试过以这种方式使用 set_charset()
函数(请注意省略 -
字符)
$conn->set_charset("utf8");
此外,您可能还想将数据库的字符集更改为 UTF-8。
关于php - 特殊字符无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18302813/