阿拉伯语编码的数据库问题


database issue with arabic encoding

我有一个wordpress网站,由于某种原因,尽管数据库及其表格排序规则utf8mb4_unicode_ci,但阿拉伯语的所有记录值都更改为这样موقع الطب النÙسي。为了解决这个问题,我决定制作脚本来选择每个表中的所有记录,然后将每个值iconv为例如这样عنوان باللغة العربية

现在问题我已经尝试了所有方法,但它对我不起作用

    header('Content-Type: text/html; charset=utf-8');
$sql['host']        = "localhost";
$sql['username']    = "root";
$sql['password']    = "";
$sql['database']    = "nafsynet_database";
$connection = mysqli_connect($sql['host'], $sql['username'], $sql['password'], $sql['database']);
if (!$connection) {
    $out .= "Error: Unable to connect to MySQL." . PHP_EOL;
    $out .= "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    $out .= "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    echo $out;
    die();
}
$sql    = "SELECT * FROM `nfsy_options` WHERE 1 LIMIT 10";
$result = mysqli_query($connection, $sql);
$rows   = mysqli_fetch_all($result,MYSQLI_ASSOC);
foreach($rows as $row) {
    $text =  $row['option_value'];
    echo iconv('windows-1256', 'utf-8',$text);echo'<br>';
}
mysqli_close($connection);

您还需要通过调用 mysqli_set_charset 为数据库连接指定 utf8 字符集

$connection = mysqli_connect($sql['host'], $sql['username'], $sql['password'], $sql['database']);
if (!$connection) {
    // ..
}
mysqli_set_charset($connection, 'utf8');
$sql    = "SELECT * FROM `nfsy_options` WHERE 1 LIMIT 10";