阿拉伯语语言转换 php 至 mysql

Arabic Language conversion php to mysql

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
mysql_query("update `mudasser`
             set `name`='$name',
                `ar_name`='$ar_name',
                `address`='$address',
                `type`='$type',
                `telephone`='$telephone',
                `date_added`='$date',
                `image`='$file'
            where `id`='$id'"

当我回应查询时,这就是结果

update `mudasser` set `name`='Boknan', `ar_name`='بوكنان', `address`='E2', `type`='Abaya Galabia', `telephone`='2535338', `date_added`='2015-06-01 08:54:11', `image`='Boknan.jpg' where `id`='128'

您可以看到正确显示的阿拉伯文名称 但在数据库中,阿拉伯文名称有点像这样 ???????

如果我 运行 这个查询直接在 mysql 中,它 运行 是完美的并且它也在 php 页面中读取正确的阿拉伯语。

作为参考,我在 php 中使用 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">,也在 db.

中使用 utf-8

我已经搜索了网络和 Whosebug,但找不到任何答案。

请检查您的 table 的 CHARSET 和 COLLATE 属性。

对于列检查 "Encoding" 和 "Collation" 属性。

CHARSET/Encoding应该是utf8 Collate/Collation 应该是 utf8_bin

在执行更新查询之前尝试这个。

或者

mysql_query("SET NAMES utf8");

mysql_query("SET NAMES utf8mb4");

utf8mb4 是首选。在MySQL 5.3.3中引入,如果可能的话使用它。

read more about difference in UTF8 and UTF8mb4 and how to switch to mb4

  1. ar_name需要是nvarchar类型
  2. 将 N 放在阿拉伯字符前 - N'بوكنان'