Maison  >  Article  >  base de données  >  données mysql code chinois tronqué

données mysql code chinois tronqué

王林
王林original
2023-05-13 22:44:08991parcourir

1. Description du problème

La base de données MySQL est une base de données relationnelle couramment utilisée, largement utilisée dans divers projets d'entreprise. Lors de l’utilisation de la base de données MySQL, nous rencontrerons divers problèmes, parmi lesquels le problème des caractères chinois tronqués est courant.

Le problème des caractères chinois tronqués s'exprime comme suit :

  1. Les caractères chinois insérés dans la base de données deviennent un tas de codes brouillés ou d'autres caractères
  2. Les caractères chinois interrogés dans la base de données deviennent également un tas de codes brouillés ou d'autres caractères ; autres caractères ;
  3. Les caractères chinois interrogés dans la base de données sont affichés sur l'interface Web sous la forme d'un groupe de caractères tronqués ou d'autres caractères.

Ce type de problème chinois tronqué affectera grandement la lisibilité et la convivialité des informations pour les utilisateurs. Si ce problème ne peut pas être résolu, il apportera une expérience très gênante aux utilisateurs.

2. Solution

Ci-dessous, nous présenterons des moyens de résoudre le problème des caractères chinois tronqués dans MySQL sous plusieurs aspects.

  1. Modifier le jeu de caractères de la base de données MySQL

MySQL prend en charge plusieurs jeux de caractères avant MySQL 5.5, qui a été remplacé par utf8mb4 après MySQL 5.5. Par conséquent, lors de la création de bases de données et de tables, il est préférable de spécifier explicitement le jeu de caractères à utiliser.

Vous pouvez créer une base de données avec le jeu de caractères utf8mb4 via l'instruction SQL suivante :

CREATE DATABASE mydatabase DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

La base de données créée par l'instruction SQL ci-dessus utilise le jeu de caractères utf8mb4 par défaut et spécifie utf8mb4_general_ci comme classement.

Vous pouvez également spécifier le jeu de caractères et le classement de la même manière lors de la création d'une table :

CREATE TABLE mytable (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

La table mytable créée par l'instruction SQL ci-dessus utilise le jeu de caractères utf8mb4 par défaut et spécifie utf8mb4_general_ci comme classement.

Lors de la spécification du jeu de caractères et des règles de tri, vous devez faire attention à ce que les jeux de caractères du client et du serveur soient cohérents, sinon le problème du chinois tronqué se produira toujours.

  1. Modifier le fichier de configuration MySQL

Le fichier de configuration par défaut pour MySQL est my.cnf, qui se trouve généralement dans /etc/mysql/my.cnf sur les systèmes Linux.

En modifiant le fichier de configuration MySQL, le jeu de caractères et le classement par défaut de MySQL peuvent être modifiés en utf8mb4.

Dans le fichier my.cnf, vous pouvez trouver les deux lignes de code suivantes :

[mysqld]
character-set-server = latin1

Changez le serveur de jeu de caractères en utf8mb4, enregistrez et quittez, puis redémarrez le service MySQL.

  1. Modifier le jeu de caractères de connexion MySQL

En modifiant le jeu de caractères de connexion entre le client MySQL et le serveur, le problème des caractères chinois tronqués peut également être résolu.

Vous pouvez modifier le jeu de caractères de connexion via l'instruction suivante :

SET NAMES utf8mb4;

Après avoir exécuté l'instruction ci-dessus, le jeu de caractères utf8mb4 sera utilisé pour la communication entre le client et le serveur.

  1. Modifier le format d'encodage de l'application

Si aucune des méthodes ci-dessus ne peut résoudre le problème du chinois tronqué, vous devez alors vérifier si le format d'encodage de l'application est correct.

Lors du développement d'applications utilisant des langages dynamiques tels que PHP, vous devez vous assurer que les données d'entrée et de sortie sont correctement codées et décodées.

Vous pouvez définir l'encodage via l'instruction suivante :

header('Content-Type:text/html; charset=utf-8');

Cela peut garantir que la méthode d'encodage de la page Web est UTF-8, résolvant ainsi le problème des caractères chinois tronqués.

  1. Remarques sur la sauvegarde et la restauration de la base de données

Lors de la sauvegarde et de la restauration de la base de données, vous devez également faire attention au problème des jeux de caractères chinois.

Si le jeu de caractères du fichier de sauvegarde est incohérent avec la base de données, des caractères chinois tronqués peuvent apparaître lors de la restauration. Par conséquent, lors de la sauvegarde et de la restauration d'une base de données MySQL, il est préférable de définir le jeu de caractères du fichier de sauvegarde pour qu'il soit cohérent avec la base de données.

Si le jeu de caractères du fichier de sauvegarde est incohérent avec la base de données, vous devez convertir le fichier de sauvegarde avec le jeu de caractères correct avant de restaurer.

3. Résumé

Le problème MySQL chinois tronqué est un problème relativement courant et il est relativement simple à résoudre. Selon la situation réelle, il existe de nombreuses façons de résoudre ce problème. Lorsque vous choisissez une solution, vous devez faire un choix en fonction de la situation spécifique pour garantir que le problème des caractères chinois tronqués puisse être résolu efficacement.

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
Article précédent:mysql comment importerArticle suivant:mysql comment importer