插入一个阿拉伯语文本MySQL

问题描述 投票:4回答:2

我想把一个阿拉伯文字存储到表中,我找了很多,但没有找到适合我的解决方案,所以我得到的是这个。

$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');但它不工作。

php mysql arabic
2个回答
9
投票

最近我自己也遇到了同样的问题。

这里有几个要点。

  • 所有的属性必须设置为ut8 (整理与charset不一样)
  • 将文档保存为UTF-8(如果你使用的是Notepad++,则是Format -> Convert to UFT-8)
  • PHP和HTML中的头应该设置为UTF-8(HTML: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 和PHP。header('Content-Type: text/html; charset=utf-8');
  • 在连接到数据库时,也要将字符集设置为UTF-8,像这样。$link->set_charset("utf8"); (直接连接后)
  • 同时确保你的数据库和表设置为UTF-8,你可以这样做。

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

记住,所有的东西都需要设置为UTF-8字符码,否则会插入 "سÙاÙ'"这样的东西。希望对大家有所帮助!


4
投票

首先是数据库、表和列。看看是否 utf8 是设置。utf8_general_ciutf8_unicode_ci

另外,连接整理:utf8_general_ci。

在PHP中,我连接了mysqli后,发出了这个。

$conn->query("SET NAMES 'utf8'");

和网页输出总是卡住。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
© www.soinside.com 2019 - 2024. All rights reserved.