Stockage et affichage de chaînes Unicode (हिन्दी) à l'aide de PHP et MySQL
Problème :
L'utilisateur rencontre des difficultés pour stocker et afficher l'hindi texte dans une base de données MySQL en utilisant PHP. Le texte apparaît comme "???????" lorsqu'il est récupéré et repris à l'aide de utf8_encode().
Solution :
Pour résoudre le problème, les étapes suivantes doivent être suivies :
-
Définir le codage de la base de données : assurez-vous que le codage et le classement de la base de données sont tous deux définis sur UTF-8. Cela se fait en exécutant la requête "SET NAMES utf8" avant toute opération de base de données.
-
Spécifiez le jeu de caractères dans la base de données : lors de la création de la table et du champ qui stockeront le texte hindi, spécifiez le caractère défini comme UTF-8.
-
Définir l'encodage de la page : dans la section d'en-tête HTML de votre page PHP, ajoutez une méta balise pour définir l'encodage de la page sur UTF-8 :
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Copier après la connexion
-
Définir l'en-tête du type de contenu : Vous pouvez également définir le type de contenu dans votre script PHP en utilisant :
header('Content-Type: text/html; charset=utf-8');
Copier après la connexion
-
Exemple de script PHP : Le script PHP suivant démontre le processus :
<?php
include("connection.php"); // Include database connection
mysql_query("SET NAMES utf8"); // Set database character set
$result = mysql_query("select * from hindi"); // Fetch data from the database
while ($myrow = mysql_fetch_row($result)) {
echo ($myrow[0]); // Echo the Hindi text
}
?>
Copier après la connexion
-
Table de base de données : La structure de la table de base de données devrait ressembler à ceci :
CREATE TABLE `hindi` (
`data` varchar(1000) character set utf8 collate utf8_bin default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Copier après la connexion
Notes supplémentaires :
- L'utilisateur a également posé des questions sur un script potentiel à convertir Texte hindi en entités HTML. Cependant, il n'existe pas de script de ce type dans la solution fournie.
- L'utilisateur a demandé comment fonctionnait le script PHP sans spécifier le "META" ou les informations d'en-tête. Cependant, la solution proposée implique de définir le jeu de caractères à la fois dans le script PHP et dans la section d'en-tête HTML, ce qui est essentiel pour afficher correctement le texte hindi.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!