HTMLENTITIES删除带重音的单词

时间:2014-09-15 06:15:30

标签: php html-entities

在脚本中,我想从数据库中恢复数据。当数据显示在屏幕上时,带有重音的字符将显示在询问点中。我尝试使用'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>';
}

2 个答案:

答案 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文档上的评论中复制的:

http://php.net/manual/en/function.htmlentities.php#108222

答案 1 :(得分:0)

您应该尝试此代码。

mysqli_set_charset($this->mysqli,"utf8");
mysqli_set_charset($cxn,"utf8");