我正在尝试将阿拉伯语文本存储到表格中,我搜索了很多,但我没有找到适合我的解决方案,所以这就是我得到的:
$en = "OK";
$ar = "حسناً";
$link->query("INSERT INTO words (en,ar) VALUES ($en,$ar)");
问题是当我插入它时,阿拉伯文本看起来像Øسناً
,我的表格整理和MySQL是utf8_general_ci
,我的数据库也是mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8');
,但它不起作用。
答案 0 :(得分:7)
我最近自己也遇到过同样的问题。
以下是一些指示:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
和PHP:header('Content-Type: text/html; charset=utf-8');
$link->set_charset("utf8");
(直接连接后) ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
请记住,一切都需要设置为UFT-8 charcode,否则它会插入“ØسناÙ<”之类的内容。希望这有帮助!
答案 1 :(得分:4)
首先是数据库,表和列。查看是否设置了utf8
:
utf8_general_ci
或utf8_unicode_ci
此外,连接排序规则:utf8_general_ci
在PHP中,在我与mysqli连接后,我发出了这个:
$conn->query("SET NAMES 'utf8'");
网页输出总是卡住:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
答案 2 :(得分:0)
这是一个对我有用的解决方案:
当您创建数据库时,请选择以下排序规则:utf8_unicode_ci
当您从 php 连接到数据库时,请使用以下字符集:
$dsn = "mysql:host=localhost;dbname=record;charset=utf8";