对于特殊字符,php和Mysql Workbench中的查询结果不相同

对于特殊字符,php和Mysql Workbench中的查询结果不相同,php,mysql,special-characters,Php,Mysql,Special Characters,首先,我从MySQL workbench执行了这个简单的查询: UPDATE PRODUIT SET statut = "Expedié" WHERE num_ref like "14T500924001" 它为statut字段保存了完全相同的值。 然后我将此查询放在我的php文件中,如下所示: $bdd->query('UPDATE PRODUIT SET statut = "Expedié" WHERE num_ref like "14T500924001"'); 不同之处在于场

首先,我从MySQL workbench执行了这个简单的查询:

UPDATE PRODUIT
SET statut = "Expedié"
WHERE num_ref like "14T500924001"
它为statut字段保存了完全相同的值。 然后我将此查询放在我的php文件中,如下所示:

$bdd->query('UPDATE PRODUIT SET statut = "Expedié" WHERE num_ref like "14T500924001"'); 
不同之处在于场地的高度,它没有从“Expedié”中取“é”。。。我怎样才能解决这个问题? 它向我展示了这句话:“ExpediÃ”

在我的html->head中,我写了这样一句话:
,但变化不大

更新1

如何获得$bdd:

function ConnexionBDD(){
try{
    $bdd = new PDO('mysql:host=127.0.0.1:3306;dbname=NumeroSerie', 'root');
     $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e){
    die('Erreur : '.$e->getMessage());
}
catch   (PDOException $pe)
{
die ("I cannot connect to the database." . $pe->getMessage());
}
return $bdd;    
};
试试这个:

$bdd = new PDO('mysql:host=127.0.0.1:3306;dbname=NumeroSerie;charset=utf8', 'root');

要将数据库连接设置为使用utf8编码,请使用

$bdd = new PDO('mysql:host=127.0.0.1:3306;dbname=NumeroSerie;charset=utf8', 'root');
此外,您需要确保您的php源文件也是用utf8编码的


使用
在html中指定字符编码不会更改数据库连接的编码。上述解决方案的替代方案是告诉浏览器您正在使用

发送iso-8859-1编码,如何获得
$bdd
?问题似乎在于数据库连接中的编码设置错误。@andy:我更新了我的问题。您是否尝试过使用类似这样的html特殊字符:
é发件人:请更新数据库集合“utf8\u bin”,然后重试。它将允许您存储这些字符。更多信息,请参见。@SuperDJ:您的意思是在我的php查询中,当我执行设置时,我会将其替换为“Expedié”->“Expedié”?谢谢mate的解释。