我有一个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);
答案 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
请告诉我是否可以为您提供更多帮助。