В сценарии я хотел бы восстановить данные из базы данных. Когда данные отображаются на экране, символы с акцентами отображаются в точке опроса. Я пытался использовать ‘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>';
}
Вы должны попробовать этот код.
mysqli_set_charset($this->mysqli,"utf8");
mysqli_set_charset($cxn,"utf8");
используйте следующий код, чтобы увидеть, работает ли он:
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
);
}
Вышеупомянутая функция скопирована из комментариев на Официальную Документацию PHP.net на htmlentities()
: