phph-mysqli在使用prepared语句时从数据库中检索特殊字符


phph mysqli Retrieve special characters from database when using prepared statements

我正在将php脚本转换为使用准备好的语句。但是,当我从数据库中获取一段文本时,特殊字符会被替换为�.

示例:

数据库包含以下文本:测试"éï"测试
(通过phpadmnin验证是否存在)

if ( $stmt = $mysqli->prepare ( "SELECT act_omschr FROM jag_activiteiten" ) )
{   
    $stmt->execute();
    $stmt->store_result();  
    $stmt->bind_result ( $DBomschrijving );
    $stmt->fetch();
    if ( $stmt->num_rows )
    {
        echo "$DBomschrijving";
    }
    $stmt->close();
}

因此,我得到了以下内容:测验����测验

有办法解决这个问题吗?

编辑:

将我的数据库表更改为utf8_unicode_ci,但没有解决问题。但结合下面DDA的awnser,它做到了。

$mysqli = new mysqli ( $loginURL, $dbusername, $dbpassword, $database );    
$mysqli->set_charset ( "utf8" );)

对于PDO的相同问题,我使用
$bdd=new PDO("mysql:host=$hostname_conn;dbname=$database_conn","$username_conn","$password_conn"); $bdd->EXEC('SET CHARACTER SET utf8');

但是您的数据库必须在utf-8 中