Maison >base de données >tutoriel mysql >Comment éviter les points d'interrogation lors du stockage de données arabes dans MySQL ?

Comment éviter les points d'interrogation lors du stockage de données arabes dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-08 20:51:12413parcourir

How to Avoid Question Marks When Storing Arabic Data in MySQL?

Comment enregistrer correctement les données arabes dans la base de données MySQL

Le stockage de texte arabe dans une base de données MySQL peut poser des problèmes si les encodages et classements de caractères nécessaires ne sont pas configurés correctement.

Problème courant : l'affichage de points d'interrogation au lieu de Arabe

Si vous rencontrez des points d'interrogation (????) lors de la récupération de texte arabe de votre base de données, cela peut être dû à :

  • Jeu de caractères et paramètres de classement incorrects pour la base de données, la table ou la colonne
  • Insertion manuelle de texte arabe sans garantir le bon encodage

Solutions :

Vérification et définition du jeu de caractères et du classement corrects :

  • Vérifiez que la base de données, la table et la colonne ont le jeu de caractères UTF-8 et UTF-8 general_ci classement.

    • Utilisez les commandes SQL suivantes pour vérifier :

      • Pour la base de données :

        SELECT default_character_set_name FROM information_schema.SCHEMATA S
        WHERE schema_name = "schemaname";
      • Pour Tableau :

        SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,
        information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
        WHERE CCSA.collation_name = T.table_collation
        AND T.table_schema = "schemaname"
        AND T.table_name = "tablename";
      • Pour la colonne :

        SELECT character_set_name FROM information_schema.`COLUMNS` C
        WHERE table_schema = "schemaname"
        AND table_name = "tablename"
        AND column_name = "columnname";
    • Définissez le jeu de caractères et le classement corrects si nécessaire :

      • Pour Base de données :

        ALTER DATABASE databasename CHARACTER SET = utf8 COLLATE = utf8_general_ci;
      • Pour le tableau :

        ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
      • Pour la colonne :

        ALTER TABLE tablename MODIFY columnname VARCHAR(50) CHARACTER SET utf8;

Insertion manuelle de l'arabe Données :

  • Assurez-vous que le texte arabe est codé en UTF-8 lors de son insertion manuelle.
  • Évitez tous les caractères spéciaux (par exemple, les apostrophes) dans le texte arabe en utilisant barres obliques inverses.

En suivant ces étapes, vous pouvez correctement stocker et récupérer des données arabes dans votre base de données MySQL, garantissant ainsi des représentation sans aucun caractère de point d'interrogation.

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