php/mysql 中的阿拉伯语在 html 中出现“????”问号

2022-08-30 16:32:33

可能的重复:
在MySQL数据库中以阿拉伯语保存数据

我在使用PHP从MYSQL数据库中检索阿拉伯语数据时遇到问题,它在HTML中显示为问号“????”:

  1. 我有一个数据库,其中“utf8_general_ci”作为排序规则。
  2. 该数据库包含一些阿拉伯语数据。
  3. HTML 编码为“UTF-8”。
  4. 当我尝试在HTML中检索数据时,它显示为“?????”。

请帮助!!!


答案 1

您必须通过以下查询在首次连接 mysql 中设置字符集:

SET CHARACTER SET utf8

例如,在 mysqli 函数中

$MySQL_Handle = mysqli_connect(HOSTNAME,DATABASE_USERNAME,DATABASE_PASSWORD,DATABASE_NAME) 
or die ( mysqli_error($MySQL_Handle) ); 

$sSQL= 'SET CHARACTER SET utf8'; 

mysqli_query($MySQL_Handle,$sSQL) 
or die ('Can\'t charset in DataBase'); 

和 PDO 示例:

$dbh = new PDO('mysql:host=localhost;dbname=' . $DB_NAME, $DB_USER,
$DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"));
$dbh->exec("SET CHARACTER SET UTF8");

此操作需要在插入之前和选择之前。


答案 2

推荐