我在 mysql 数据库中有一个字段“scroller”,排序规则为“utf8_unicode_ci”。 我正在尝试将阿拉伯文文本保存到该字段。
当我将它直接插入 mysql 时,它就可以工作了。
使用下面的代码,我尝试编辑该字段。当我回应它时,它会正确显示。但是当它使用更新保存时,它的保存就像“???????:89???????????AMRI????????????? ?????????????????????在数据库中。
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' );
请帮帮我
最佳答案
我刚刚用土耳其语测试了同样的东西。如果您的表的默认排序规则不是 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
关于php - mysql php 多语言阿拉伯语和印地语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8453998/