首先我从 MySQL 工作台做了这个简单的查询:
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 中,我放了这个:<meta charset="utf-8">
但变化不大。
更新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;
};
最佳答案
要将数据库连接设置为使用 utf8 编码,请使用
$bdd = new PDO('mysql:host=127.0.0.1:3306;dbname=NumeroSerie;charset=utf8', 'root');
此外,你需要确保你的php源文件也是用utf8编码的。
使用 <meta charset="utf-8">
指定 html 中的字符编码不会更改数据库连接的编码。上述解决方案的替代方法是告诉浏览器您正在发送带有 <meta charset="iso-8859-1">
的 iso-8859-1 编码。 .
关于php - 从 php 和在 Mysql Workbench 中查询特殊字符的结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26014623/