mysql php 多语言阿拉伯语和印地语

发布于 2024-12-20 15:31:06 字数 780 浏览 4 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你爱我像她 2024-12-27 15:31:06

我刚刚用土耳其语测试了同样的事情。如果您的表的默认排序规则不是 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

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:

ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

And then try to run your code again.

Also, it is better to use mysql_set_charset instead of SET NAMES:
http://php.net/manual/en/function.mysql-set-charset.php

深者入戏 2024-12-27 15:31:06

您只需更改表排序规则 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文