0

我有一个 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);
4

1 回答 1

-1

设置元标记可能有问题

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

您还必须设置列集合类型,它应该与utf8_general_ci.表和数据库类型相同,并且数据库类型也将被视为相同。

还有一些要小心的地方

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

1- MySQL 字符集: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');

更多详情:链接

让我知道我是否可以为您提供更多帮助。

于 2013-07-02T09:02:46.403 回答