Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible de récupérer des données Unicode en hindi à partir de PHP et MySQL

A surveiller :1. assurez-vous qu'avec votre fichier html ou php qui rendrait le contenu, a soit :i) <?php header('Content-Type: text/html; charset=utf-8'); ?> ORii).

<?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. Assurez-vous d'avoir le bon classement comme indiqué ci-dessous. ( :) tout le meilleur )

Donc dans mon cas, j'avais essayé de changer le classement de utf8mb4_unicode_ci pour mysql et a dû le changer en uft8_general_ci .

Puis collé :

mysqli_set_charset( $con, 'utf8');

juste avant de faire la commande SELECT.

Ceci est mon code pour lire depuis la base de données :

/*

$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 . . . 
}

Et ça a fonctionné comme un charme. Tous mes vœux. Le code ci-dessus peut fonctionner avec la lecture du chinois, du russe ou de l'arabe ou de toute langue internationale à partir de la colonne de table de la base de données contenant ces données.