Maison > base de données > tutoriel mysql > le corps du texte

Que dois-je faire si MySQL ne peut pas utiliser le chinois ?

PHPz
Libérer: 2023-04-21 10:18:35
original
3792 Les gens l'ont consulté

MySQL est un système de gestion de bases de données relationnelles courant Pour de nombreux développeurs, il est devenu une nécessité pour le travail de développement. Cependant, lors de l'utilisation de MySQL, de nombreux utilisateurs peuvent rencontrer le problème « Impossible d'utiliser le chinois ».

L'incapacité de MySQL à utiliser le chinois se manifeste principalement sous deux aspects : d'une part, les caractères chinois tronqués dans l'interface de ligne de commande MySQL, et d'autre part, le problème du stockage et des requêtes des caractères chinois dans la base de données MySQL. Cet article explorera ces deux aspects des problèmes en détail et proposera les solutions correspondantes.

Caractères chinois tronqués dans l'interface de ligne de commande MySQL

L'interface de ligne de commande MySQL est une fonction essentielle de MySQL. Les développeurs peuvent exécuter diverses commandes dans cette interface. Cependant, de nombreux utilisateurs trouveront des caractères chinois tronqués lorsqu'ils utiliseront l'interface de ligne de commande MySQL. Cela est principalement dû au fait que le jeu de caractères par défaut de MySQL est « latin1 » au lieu de « utf8 ».

Ce qui suit décrit comment résoudre le problème du chinois tronqué dans l'interface de ligne de commande MySQL.

Méthode 1 : Spécifiez un nom d'utilisateur prenant en charge les jeux de caractères chinois en ajoutant le paramètre "-u" lors de l'utilisation de l'outil de ligne de commande "mysql".

Par exemple, utilisez la commande suivante pour spécifier le nom d'utilisateur « root » et le mot de passe « password » :

mysql -u root -ppassword
Copier après la connexion

Méthode 2 : utilisez la commande suivante pour afficher le jeu de caractères par défaut MySQL actuel :

mysql> show variables like '%character%';
Copier après la connexion

Cette commande affichera les paramètres actuels du jeu de caractères, Parmi eux, les valeurs des trois paramètres "character_set_client", "character_set_connection" et "character_set_results" sont toutes "latin1".

Afin de résoudre le problème du chinois tronqué dans l'interface de ligne de commande, vous devez modifier les valeurs​​de ces trois paramètres en "utf8". L'objectif peut être atteint grâce à la commande suivante :

mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_results=utf8;
Copier après la connexion

Méthode 3 : Modifier le fichier de configuration MySQL "my.cnf".

Dans le fichier de configuration MySQL, recherchez les trois lignes de code suivantes :

character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci
Copier après la connexion

Supprimez les commentaires de ces trois lignes de code et remplacez la valeur par "utf8", comme indiqué ci-dessous :

character-set-client-handshake = FALSE 
character-set-server = utf8 
collation-server = utf8_general_ci
Copier après la connexion

Stockage des caractères chinois dans la base de données MySQL et problèmes de requête

En plus du problème de confusion du chinois dans l'interface de ligne de commande, la base de données MySQL elle-même peut également avoir des problèmes de stockage et de requête des caractères chinois.

Par exemple, lorsque nous insérons des données contenant des caractères chinois dans la base de données MySQL, nous pouvons rencontrer l'erreur suivante :

Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1
Copier après la connexion

Cela est dû au fait que le jeu de caractères par défaut de MySQL est "latin1", et non "utf8". Si vous souhaitez prendre en charge la création de tableaux et le stockage de données en chinois, vous devez définir le jeu de caractères de la structure du tableau sur « utf8 ».

Ce qui suit décrit comment résoudre le problème du stockage et des requêtes des caractères chinois dans la base de données MySQL.

Méthode 1 : résolvez le problème en spécifiant le jeu de caractères comme "utf8" lors de la création de la table.

Par exemple, utilisez la commande suivante pour créer une table nommée "personne" et définissez le jeu de caractères du champ "nom" dans la table sur "utf8" :

CREATE TABLE person (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
Copier après la connexion

Méthode 2 : définir les caractères par défaut dans la configuration MySQL file Défini sur "utf8", ce qui fait que toutes les tables utilisent ce jeu de caractères par défaut.

Dans le fichier de configuration MySQL, retrouvez les deux lignes de code suivantes :

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
Copier après la connexion

Supprimez les commentaires de ces deux lignes de code et changez la valeur en "utf8", comme indiqué ci-dessous :

character-set-server=utf8
collation-server=utf8_general_ci
Copier après la connexion

Pour les tables existantes, vous pouvez pass La commande suivante modifie le jeu de caractères de la structure de la table :

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Copier après la connexion

Conclusion

Il y a un problème de jeu de caractères chinois que ce soit dans l'interface de ligne de commande ou dans la base de données MySQL. Lorsque vous rencontrez ce genre de problème, veuillez le résoudre selon les méthodes fournies dans cet article. En ajustant le jeu de caractères, vous pourrez facilement interroger et stocker des données chinoises et éviter divers problèmes rencontrés dans le traitement des caractères chinois.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal