在脚本中,我想从数据库中恢复数据。当数据显示在屏幕上时,带有重音的字符将显示在询问点中。我尝试使用'HTMLENTITES($ variable,ENT_HTML5)和从屏幕上显示的单词。脚本和数据以UTF8编码。
如果没有询问点,您如何显示数据?
提前感谢您的帮助!
这里是代码。
$requete = "SELECT ID_MODULE, SIGLE, TITRE, ETAT, ANNEE FROM MODULE";
$res = mysqli_query($cxn,$requete);
while ($ligne = mysqli_fetch_array($res)) {
echo '<tr>';
echo '<td> <input type="checkbox" name="choix[]" value="'.$ligne['ID_MODULE'].'"> </td>';
echo '<td>'.$ligne['SIGLE'].'</td>';
echo '<td>'.$ligne['TITRE'].'</td>';
echo '<td>'.htmlentities($ligne['ETAT'], ENT_HTML5).'</td>';
echo '<td>'.$ligne['ANNEE'].'</td>';
echo '</tr>';
}
答案 0 :(得分:0)
使用以下代码查看它是否有效:
echo htmlentities($ligne['ETAT'], ENT_HTML5, "UTF-8");
我已将UTF-8
作为第三个参数传递给htmlentities()
;
更新: 使用此函数来查看它是否有效:
function _decodeAccented($encodedValue, $options = array()) {
$options += array(
'quote' => ENT_NOQUOTES,
'encoding' => 'UTF-8',
);
return preg_replace_callback(
'/&\w(acute|uml|tilde);/',
create_function(
'$m',
'return html_entity_decode($m[0], ' . $options['quote'] . ', "' .
$options['encoding'] . '");'
),
$encodedValue
);
}
上述功能是从htmlentities()
上的官方PHP.net文档上的评论中复制的:
答案 1 :(得分:0)
您应该尝试此代码。
mysqli_set_charset($this->mysqli,"utf8");
mysqli_set_charset($cxn,"utf8");