我在mysql数据库中有一个字段“scroller”,其中包含整理“utf8_unicode_ci”。 我正在尝试将阿拉伯语文本保存到此字段中。
当我直接将它插入mysql时,它可以工作。
使用下面的代码我尝试编辑该字段。当我回应它时,它显示正确。但是当它使用更新保存它的保存就像“???????????????????????????????????????????????????????????????? ????????????????????在数据库中。
echo "<meta http-equiv=Content-Type content=text/html; charset=UTF-8>";
require 'config.php';
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
$scroller=htmlentities($_POST['scroller'],ENT_QUOTES,"UTF-8");
mb_internal_encoding("UTF-8");
echo $scroller;
$sql="UPDATE arab_scroller SET scroller='$scroller' WHERE page='$id1' ";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
header( 'Location:index.php' );
请帮帮我
答案 0 :(得分:1)
我刚用土耳其语测试了同样的东西。如果表的默认排序规则不是UTF8,则可能存在这些问题。
请先试试这个:
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
然后尝试再次运行您的代码。
此外,最好使用mysql_set_charset
代替SET NAMES
:
http://php.net/manual/en/function.mysql-set-charset.php
答案 1 :(得分:0)
您只需更改表格Collation utf8_general_ci,默认情况下需要拉丁语;
OR
您运行此查询:
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
这对我很有用。