我正在使用MySQL数据库来存储阿拉伯语记录,问题是当我尝试使用MySQL insert query
插入记录时,它将在数据库سعود
中转换为这样而非阿拉伯语单词。
谷歌之后,我发现需要设置整理。所以我将其设置为utf8_general_ci
,utf8mb4_unicode_ci
以及其他许多内容。我也在insert query
mysql_query("SET NAMES utf8;");
mysql_query("SET CHARACTER_SET utf8;");
但不适用于我,仍在数据库中插入سعود
。我在哪里做错了?
答案 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_*
的使用已弃用,不再维护。出于安全原因,您应该转换为MySQLi
或PDO
。
这里有几点建议:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
header('Content-Type: text/html; charset=utf-8');
mysql_set_charset("utf8");
(在连接后直接用于MySQL
,{{1}有类似的和PDO)。 MySQLi_*
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
请记住,可以设置为特定字符集的一切都需要设置为UFT-8(如果你正在使用另一个字符集,一切都需要设置为),否则你会得到一些奇怪的字符在您的数据库中。这也适用于英文字符,所以不用担心。希望这有帮助!