mysql php 多语言阿拉伯语和印地语
我在 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' );
请帮帮我
I have a field "scroller" with collation "utf8_unicode_ci" in mysql database.
I am trying to save an arabic text to this field.
When i insert it to the mysql directly it works.
Using this code below i tried to edit the field. When i echo it it displays correctly. But when it is saved using update its saving like "??????? : 89 ????? ?? ?????? AMRI ????????? ?????? ???? ??????? ????? ????? ???????" in the database.
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' );
Please help me out
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我刚刚用土耳其语测试了同样的事情。如果您的表的默认排序规则不是 UTF8,您可能会遇到此类问题。
请先尝试此操作:
然后再次尝试运行您的代码。
另外,最好使用
mysql_set_charset
而不是SET NAMES
:http://php.net/manual/en/function.mysql-set -charset.php
I just tested same thing with Turkish. If your table's default collation is not UTF8, you might have these kind of problems.
Please try this first:
And then try to run your code again.
Also, it is better to use
mysql_set_charset
instead ofSET NAMES
:http://php.net/manual/en/function.mysql-set-charset.php
您只需更改表排序规则 utf8_general_ci 默认情况下它采用拉丁语;
或者
运行此查询:
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
这真的很适合我。
You just change table Collation utf8_general_ci by default it takes latin;
OR
you run this query :
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
This is really works with me.