阿拉伯语不插入mysql数据库

时间:2015-08-10 05:56:33

标签: php mysql database

我正在使用MySQL数据库来存储阿拉伯语记录,问题是当我尝试使用MySQL insert query插入记录时,它将在数据库سعود中转换为这样而非阿拉伯语单词。

谷歌之后,我发现需要设置整理。所以我将其设置为utf8_general_ciutf8mb4_unicode_ci以及其他许多内容。我也在insert query

之前尝试过这个
mysql_query("SET NAMES utf8;");
mysql_query("SET CHARACTER_SET utf8;");

但不适用于我,仍在数据库中插入سعود。我在哪里做错了?

4 个答案:

答案 0 :(得分:0)

建立连接后,请写下MySQL行。

mysql_query("SET NAMES cp1256");
mysql_query("set characer set cp1256");

Can't insert arabic text into mysql database using mysql prompt dba.stackexchange.com

答案 1 :(得分:0)

你可以在插入时使用utf8_encode()和使用utf8_decode()函数进行查看。

答案 2 :(得分:0)

要将阿拉伯字符正确存储在数据库中,您必须将数据库字符集保留为utf8,并将数据库排序规则保留为utf8_general_ci。这样你所有的表都会有一个utf8的字符集。

您还可以为各个表设置这些字符集。

代码

mysql_query("SET NAMES utf8");
mysql_query("set characer set utf8");

不会工作,因为它设置了mysql数据库连接的charset,而不是数据库本身。

答案 3 :(得分:0)

首先,Mysql_*的使用已弃用,不再维护。出于安全原因,您应该转换为MySQLiPDO

这里有几点建议:

  • 所有属性必须设置为UTF-8或UTF-8(无BOM)(排序规则与字符集不同)
  • 将文档保存为UTF-8或UTF-8(无BOM)(如果您使用的是Notepad ++,它的格式 - >转换为UFT-8或UTF-8不带BOM
    • 请注意,尽管它们都是UTF-8,但它们的行为有些不同
  • PHP和HTML中的标题应设置为UTF-8
    • HTML:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    • PHP:header('Content-Type: text/html; charset=utf-8');
  • 连接到数据库后,也将charset设置为UTF-8,如下所示:mysql_set_charset("utf8");(在连接后直接用于MySQL,{{1}有类似的和PDO)。
  • 还要确保您的数据库和表格设置为UTF-8,您可以这样做:

MySQLi_*

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;

请记住,可以设置为特定字符集的一切都需要设置为UFT-8(如果你正在使用另一个字符集,一切都需要设置为),否则你会得到一些奇怪的字符在您的数据库中。这也适用于英文字符,所以不用担心。希望这有帮助!