1

我有一个数据库 (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,则显示垃圾。所以记录集/mysql查询连接有问题。任何人都可以帮我解决这个问题吗?

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

提前致谢。

4

1 回答 1

0

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

<?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. 确保您有正确的排序规则,如下所述。( :) 一切顺利 )

因此,就我而言,我尝试将排序规则从utf8mb4_unicode_cifor 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 . . . 
}

它就像一个魅力。一切顺利。上面的代码可以从数据库的表列中读取中文、俄文或阿拉伯文或任何国际语言,其中包含此类数据。

于 2016-03-20T18:07:19.967 回答