无法从PHP和MySQL获取印地语的Unicode数据

时间:2012-09-25 10:52:25

标签: mysql unicode utf-8 fetch hindi

我有一个数据库(utf8_unicode_ci),表(utf8_unicode_ci)和一个mysql_query(“SET CHARACTER SET utf8”)。

我今天还有一个问题。我有一个表,其中有10,000条记录以印地语的unicode格式存储。我正在使用Xampp 1.6.2版本。当我在本地机器上获取数据时,它显示正常;比如说“select * from unicode_table order by id”。

但如果我将它上传到我的实时服务器上,它就不会显示任何记录。我试图解决这个问题,如果我写的话,我发现了:

select * from unicode_table order by id limit 0, 40

limit 0, 40的查询会显示数据,如果我给limit 0, 50,则会显示垃圾。所以在recordset / mysql查询连接中存在问题。任何人都可以帮我解决这个问题吗?

我的实时服务器是PHP和MySQL的最新更新,服务器由一家优秀的托管公司维护。

提前致谢。

1 个答案:

答案 0 :(得分:0)

需要注意的事项: 1.确保您的html或php文件能够呈现内容,具有:    i)<?php header('Content-Type: text/html; charset=utf-8'); ?>    要么    ⅱ)。

<?php $page_html = "<html>";

    $page_html .= "<META HTTP-EQUIV=\"content-type\" CONTENT=\"text/html; charset=utf-8\">";

    $page_html .= "<body>";

    $page_html .= " process and display your content from the database here ";

$page_html .= "</body></html>";

    echo $page_html;
  1. 确保您拥有如下所述的正确校对。 (:)一切顺利)
  2. 所以在我的情况下,我曾尝试更改utf8mb4_unicode_ci对于mysql的排序规则,并且必须将其更改为uft8_general_ci

    然后粘贴:

    mysqli_set_charset( $con, 'utf8');
    

    在我执行SELECT命令之前。

    这是我从db中读取的代码:

    /*
    
    $DB_SERVER="db_server_name";
    $DB_USER_READER="root";
    $DB_PASS_READER="passw*rd";
    $DB_NAME="db_name";
    $DB_PORT="port number";
    
    $SELECT_WHAT="`name_of_column_as_in_your_table`";
    $WHICH_TBL="`table_name`";
    $ON_WHAT_CONDITION="`id`='7'";
    
    */
    
    
    $con = mysqli_connect($DB_SERVER, $DB_USER_READER, $DB_PASS_READER, $DB_NAME, $DB_PORT);//this is the unique connection for the selection
    
        mysqli_set_charset( $con, 'utf8');
    
    
            $slct_stmnt = "SELECT ".$SELECT_WHAT." FROM ".$WHICH_TBL." WHERE ".$ON_WHAT_CONDITION;
    
        $slct_query = mysqli_query($con, $slct_stmnt);
    
            if ($slct_query==true) {
    //Do your stuff here . . . 
    }
    

    它就像一个魅力。祝一切顺利。上述代码可用于阅读中文,俄语或阿拉伯语或任何国际语言,从数据库的表格列中保存此类数据。