特殊字符无法正常显示

时间:2013-08-18 19:19:49

标签: php mysql

我特别在谈论瑞典语中的å,ä和ö。当在段落中显示时,我使用函数将字母替换为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);

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过以这种方式使用set_charset()功能(请注意省略-字符)

$conn->set_charset("utf8");

此外,您可能还希望将数据库的字符集更改为UTF-8。