阿拉伯语文本没有存储在mysql数据库中?

时间:2013-07-02 08:58:37

标签: php mysql

我有一个mysql表成员。 会员名称有阿拉伯名字。 mname归类设置为utf8_general_ci

当用户输入阿拉伯语名称时,其存储在db表中作为其他一些字符。但是当我在网站中检索并显示它时,它会正确显示为阿拉伯文字。为什么它不作为阿拉伯语文本存储在数据库表中?

我试过这个,但只是我得到问号没有阿拉伯语文字......

1- MySQL charset: UTF-8 Unicode (utf8)

2- MySQL connection collation: utf8_general_ci

3- your database and table collations are set to: utf8_general_ci or utf8_unicode_ci

Then, add this code in your php script when you connect to db:

mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');

Php代码:

使用简单的PHP。

$mname = $_POST['mname'];
$email = $_POST['email'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$age = $_POST['age'];
$city = $_POST['city'];
$country = $_POST['country'];



$query="insert into member (mname, email, password, gender, age, city, country) values ('$mname','$email','$password', '$gender', '$age','$city','$country')";
mysql_query("SET NAMES 'utf8'"); 
mysql_query('SET CHARACTER SET utf8');
mysql_query($query);

1 个答案:

答案 0 :(得分:-1)

设置元标记可能会有问题

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

你也必须设置列集合类型它应该相同utf8_general_ci.更多的表和数据库类型也将被视为相同。

还有一点要小心,比如

使用php正确读取,编写和排序mysql数据库中的阿拉伯文本,确保:

1- MySQL charset:UTF-8 Unicode(utf8)

2- MySQL连接排序规则:utf8_general_ci

3-您的数据库和表排序规则设置为:utf8_general_ci或utf8_unicode_ci

然后,在连接到db:

时,在PHP脚本中添加此代码
mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');

了解更多详情:LINK

请告诉我是否可以为您提供更多帮助。