mysql php多语种阿拉伯语和印地文

时间:2011-12-10 02:43:26

标签: php mysql multilingual arabic

我在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' );

请帮帮我

2 个答案:

答案 0 :(得分:1)

我刚用土耳其语测试了同样的东西。如果表的默认排序规则不是UTF8,则可能存在这些问题。

请先试试这个:

ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

然后尝试再次运行您的代码。

此外,最好使用mysql_set_charset代替SET NAMEShttp://php.net/manual/en/function.mysql-set-charset.php

答案 1 :(得分:0)

您只需更改表格Collat​​ion utf8_general_ci,默认情况下需要拉丁语;

OR

您运行此查询:

ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

这对我很有用。