阿拉伯编码的数据库问题
database issue with arabic encoding
我有一个 wordpress 网站,由于某种原因,所有阿拉伯语的记录值都变成这样 موقع الطب Ø§Ù„Ù†ÙØ³ÙŠ
尽管数据库和它是 tables 排序规则 utf8mb4_unicode_ci
。为了解决这个问题,我决定制作脚本 select 来自每个 table 的所有记录,然后 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);
您还需要为数据库连接指定 utf8 字符集,方法是调用 mysqli_set_charset
$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";
我有一个 wordpress 网站,由于某种原因,所有阿拉伯语的记录值都变成这样 موقع الطب Ø§Ù„Ù†ÙØ³ÙŠ
尽管数据库和它是 tables 排序规则 utf8mb4_unicode_ci
。为了解决这个问题,我决定制作脚本 select 来自每个 table 的所有记录,然后 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);
您还需要为数据库连接指定 utf8 字符集,方法是调用 mysqli_set_charset
$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";