Maison  >  Article  >  développement back-end  >  Comment gérer les chaînes Unicode (par exemple, hindi) en PHP et MySQL ?

Comment gérer les chaînes Unicode (par exemple, hindi) en PHP et MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-22 20:44:04108parcourir

How to Handle Unicode Strings (e.g., Hindi) in PHP and MySQL?

Stockage et affichage de chaînes Unicode (हिन्दी) Utilisation de PHP et MySQL

Le stockage et l'affichage de jeux de caractères non latins comme l'hindi dans une application Web peuvent être difficiles, mais cela est essentiel pour soutenir un public plus large. Voici un guide complet sur la façon d'y parvenir en utilisant PHP et MySQL :

Définition des paramètres de base de données

  • Assurez-vous que votre base de données MySQL dispose d'un jeu de caractères et d'un classement corrects en exécutant ces commandes. :

    <code class="sql">SET character_set_database=utf8;
    SET collation_database=utf8_unicode_ci;</code>
  • Dans la définition du tableau, spécifiez la colonne de stockage des données Unicode sous la forme VARCHAR avec CHARACTER SET utf8mb4 et COLLATE utf8mb4_unicode_ci.

Insertion et récupération de données

  • Lors de l'insertion de données, saisissez directement la chaîne Unicode dans la base de données sans aucune modification.
  • Pour récupérer les données en PHP, exécutez la requête suivante avant de les récupérer :

    <code class="php">mysql_query("SET NAMES utf8");</code>
  • Utilisez utf8_encode() pour convertir la chaîne Unicode au format UTF-8 avant de l'afficher.

Exemple de script PHP

<code class="php"><?php
header('Content-Type: text/html; charset=utf-8');

// Database connection
include('connection.php');

// Execute query with UTF-8 encoding
mysql_query("SET NAMES utf8");
$result = mysql_query("SELECT * FROM `hindi`");

// Fetch and display results
while ($row = mysql_fetch_row($result)) {
    echo utf8_encode($row[0]);
}
?></code>

Dump de base de données

Dump de base de données
<code class="sql">CREATE TABLE `hindi` (
  `data` VARCHAR(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
);

INSERT INTO `hindi` VALUES ('सूर्योदय');</code>

Le vidage de la base de données doit ressembler à ce qui suit :

  • Dépannage

    <code class="html"><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></code>
  • Assurez-vous que la section d'en-tête HTML inclut le jeu de caractères correct :
  • Vérifiez que le serveur Web est correctement configuré pour gérer les chaînes Unicode.
Si les problèmes persistent, consultez la documentation pertinente ou demandez de l'aide sur des forums comme StackOverflow.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn