Maison > base de données > tutoriel mysql > Pourquoi des points d'interrogation apparaissent-ils à la place du texte arabe lors du stockage de données dans MySQL ?

Pourquoi des points d'interrogation apparaissent-ils à la place du texte arabe lors du stockage de données dans MySQL ?

Barbara Streisand
Libérer: 2024-12-10 14:19:11
original
222 Les gens l'ont consulté

Why are Question Marks Appearing Instead of Arabic Text When Storing Data in MySQL?

Stockage de données arabes dans une base de données MySQL

Problème :

Lorsque vous essayez de stocker du texte arabe dans une base de données MySQL, la question des marques ("????") apparaissent à la place des caractères prévus.

Conception du Tableau :

CREATE DATABASE mydb
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

CREATE TABLE `categories` (...);
Copier après la connexion

Observations :

  • La base de données, la table et la colonne sont définies pour utiliser le codage de caractères UTF-8.
  • Les données ne sont pas insérées correctement, ce qui entraîne une question marques.

Solution :

Pour résoudre ce problème, assurez-vous que les étapes suivantes sont suivies :

  1. Vérifiez les paramètres du personnage :

    • Exécutez ce qui suit requêtes pour vérifier le jeu de caractères et les paramètres de classement pour la base de données, la table et la colonne :

      • Base de données : SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "schemaname";
      • Table : 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";
      • Colonne : SELECT caractère_set_name FROM information_schema.COLUMNS C WHERE table_schema = "schemaname" ET nom_table = "tablename" AND column_name = "columnname";
  2. Définir les paramètres UTF-8 manuellement (si nécessaire) :

    • Si les paramètres ne sont pas définis sur UTF-8, utilisez ce qui suit commandes :

      • Base de données : ALTER DATABASE schemaname CHARACTER SET utf8 COLLATE utf8_general_ci;
      • Table : ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
      • Colonne : ALTER TABLE nom de table MODIFY nom de colonne VARCHAR(n) CHARACTER SET utf8;
  3. Insérer manuellement les données arabes :

    • Utilisez un outil prenant en charge l'insertion de texte arabe, tel que SQLYog ou phpMyAdmin.
  4. Option de clic droit (si vous utilisez SQLYog) :

    • Clic droit sur la base de données, table , ou une colonne et sélectionnez "Modifier".
    • Définissez le jeu de caractères sur UTF-8 et le classement sur UTF-8_general_ci.

En suivant ces étapes, les caractères arabes corrects seront stockés et récupérés de la base de données MySQL sans aucun 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal