阿拉伯语不存储在mysql / php
中我尝试插入此查询,但它是商店 ???? ???? ?? ????
INSERT INTO school_name (en_school_name, ar_school_name) VALUES ('some data', 'روضة احمد بنبل')
对于解决方案,我已添加此
ini_set('default_charset', 'utf-8');
header('Content-type: text/html; charset=utf-8');
mysqli_set_charset($conn,"utf8");
mysqli_query($conn,"SET NAMES 'utf8'");
mysqli_query($conn,'SET CHARACTER SET utf8');
并且也更喜欢这个问题但不适用于我的情况,Save Data in Arabic in MySQL database
如果我手动运行查询,它可以正常工作,但是当我试图用此插入查询时
$sql = "INSERT INTO school_name (en_school_name, ar_school_name)
VALUES ('".$dat_val_en."', '".$dat_val_ar."')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
echo "<br>";
}
它是商店 ???? ???? ?? ???? 即可。 表格结构
答案 0 :(得分:1)
从
更改数据库结构utf8
要
utf8_unicode_ci
数据库的charset必须是utf8_unicode_ci
。
您也可以像这样设置数据库
CREATE DATABASE databasename
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
答案 1 :(得分:0)
确保已将db字符集设置为UTF-8和整理toutf8_general_ci
答案 2 :(得分:0)
CREATE TABLE `tableName` (
`id` int(11) NOT NULL,
`comment` text COLLATE utf16_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf16 COLLATE=utf16_bin;
注意:在创建表格时请使用以下内容: - DEFAULT CHARSET = utf16 COLLATE = utf16_bin
答案 3 :(得分:0)
使用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');
了解更多详情: http://www.adviesenzo.nl/examples/php_mysql_charset_fix/
答案 4 :(得分:0)
CREATE TABLE `tableName`(`col` varchar(100) collate utf8_ general_ci);
为我工作
尝试排序utf8_general_ci