Maison  >  Article  >  base de données  >  Comment résoudre les caractères tronqués dans la requête chinoise MySQL

Comment résoudre les caractères tronqués dans la requête chinoise MySQL

PHPz
PHPzoriginal
2023-04-21 11:19:512207parcourir

Lors de l'utilisation de la base de données MySQL, nous rencontrons parfois des résultats de requêtes tronqués. La raison des caractères tronqués est souvent due à l'incohérence entre le format de codage des données stocké dans la base de données et notre format de codage de connexion MySQL. L'une des situations les plus courantes est que les requêtes chinoises sont tronquées. Cet article présentera aux lecteurs comment éviter le problème des caractères tronqués des requêtes chinoises dans MySQL.

1. La cause des caractères tronqués dans les requêtes chinoises MySQL

Le jeu de caractères par défaut de MySQL est LATIN1 et UTF-8 est un format d'encodage plus largement utilisé. Si nous utilisons le codage UTF-8 pour stocker les données chinoises, mais que nous utilisons le codage LATIN1 lors de l'interrogation, nous aurons des résultats de requête tronqués.

Dans MySQL, nous pouvons résoudre le problème des requêtes chinoises tronquées des manières suivantes :

  1. Vérifiez l'encodage de la base de données et de la table

Nous devons d'abord vérifier si l'encodage de la base de données et de la table est correct pour garantir que ils sont cohérents avec le stockage des données. Le format d'encodage est cohérent. Nous pouvons interroger le format d'encodage de la base de données et de la table via l'instruction SQL suivante :

SHOW CREATE TABLE table_name;
SHOW VARIABLES LIKE 'character_set_database';

Dans les résultats de la requête, nous pouvons voir le format d'encodage de la base de données et de la table, ainsi que les jeux de caractères du serveur et du client, et si le jeu de caractères de la connexion actuelle correspond.

  1. Définir l'encodage de la connexion MySQL

Vous pouvez définir le format d'encodage de la connexion client MySQL sur UTF-8 via l'instruction de configuration CONFIG de MySQL pour éviter les caractères tronqués lors de la lecture des données. Nous pouvons utiliser la commande suivante lors de la connexion au serveur MySQL :

mysql --default-character-set=utf8 -u username -p

Cette commande définira automatiquement le format d'encodage du client sur UTF-8 lors de l'établissement d'une connexion avec le serveur MySQL, garantissant qu'aucun caractère tronqué n'apparaîtra lors de la lecture des données.

  1. Modifier le fichier de configuration MySQL

Si nous utilisons MySQL 5.5 ou supérieur, dans le fichier de configuration my.cnf, nous pouvons définir le format d'encodage du serveur MySQL sur UTF-8 via les paramètres suivants :

[client]
default-character-set=utf8

[mysqld]
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci

Dans ce fichier de configuration, nous pouvons définir le format d'encodage par défaut du client et du serveur sur UTF-8 pour garantir qu'il n'y aura pas de caractères tronqués lors de la lecture des données.

  1. Définissez l'encodage des champs MySQL sur UTF-8

S'il y a déjà des données dans notre base de données qui utilisent un format d'encodage incorrect, nous pouvons définir le format d'encodage de tous les champs de la base de données sur UTF-8 :

ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Le La commande ci-dessus modifiera le format de codage de la base de données et de la table en UTF-8 pour garantir qu'il n'y aura pas de caractères tronqués lors de la lecture des données.

En utilisation réelle, nous pouvons choisir différentes solutions en fonction de situations spécifiques. Lorsque nous résolvons le problème des caractères tronqués des requêtes chinoises, nous devons prêter attention au fait que la conversion entre différents jeux de caractères consomme de l'efficacité. Nous devons donc faire un compromis entre efficacité et exactitude, et le baser sur nos besoins commerciaux réels. Choisissez la solution la plus appropriée.

Résumé

Pour éviter le problème des caractères tronqués des requêtes chinoises dans la base de données MySQL, nous devons contrôler de manière exhaustive de nombreux aspects tels que l'établissement de connexions, la vérification de l'encodage de la base de données et des tables, la modification des fichiers de configuration MySQL et la définition de l'encodage des champs. Lors de l'utilisation de la base de données MySQL, les lecteurs doivent étudier attentivement chaque solution et enfin choisir la méthode la plus appropriée en fonction des conditions d'utilisation réelles. Ce n'est qu'ainsi que nous pourrons efficacement éviter le problème des caractères tronqués des requêtes chinoises et garantir l'exactitude et l'intégrité des données.

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