Maison > Article > base de données > Comment résoudre les caractères chinois tronqués dans MySQL
La base de données MySQL est une base de données relationnelle courante, largement utilisée dans les applications Web, la gestion de données et le stockage de Big Data et dans d'autres domaines. Cependant, dans l'application quotidienne de MySQL, nous rencontrons souvent le problème des caractères chinois tronqués, ce qui affectera l'exactitude et la lisibilité des données. Par conséquent, résoudre efficacement le problème de la confusion du chinois MySQL est très important pour la gestion et l’application des bases de données.
Cet article présentera les causes des caractères chinois tronqués de MySQL et comment résoudre efficacement le problème des caractères chinois tronqués de MySQL.
1. La raison des caractères chinois tronqués de MySQL
Le jeu de caractères par défaut de la base de données MySQL est Latin2 (ISO 8859-2), qui ne prend en charge que certaines lettres, chiffres et quelques caractères spéciaux.
Lorsque nous utilisons d'autres jeux de caractères tels que UTF-8 pour écrire des caractères chinois, MySQL confondra ces caractères avec des caractères du jeu de caractères Latin2, ce qui entraînera une confusion dans le codage des caractères, appelé "code tronqué".
2. Solution aux caractères chinois tronqués de MySQL
Lors de l'installation de MySQL, nous pouvons choisir d'installer différents jeux de caractères, tels que UTF-8, GBK, gb2312, etc.
Si nous avons installé MySQL, nous pouvons spécifier le jeu de caractères en modifiant le fichier de configuration (my.cnf). Ouvrez my.cnf et ajoutez le code suivant :
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
Remarque : ce qui précède est la configuration d'UTF-8. Si vous utilisez GBK ou GB2312, remplacez-le directement par le jeu de caractères correspondant.
Remarque : Une fois la modification terminée, le service MySQL doit être redémarré pour prendre effet.
Nous pouvons également modifier le jeu de caractères de MySQL via la ligne de commande. Après vous être connecté à la ligne de commande MySQL, entrez la commande suivante :
ALTER DATABASE yourdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE yourtable CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE yourtable MODIFY COLUMN yourcolumn VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Pendant le processus de développement, Nous pouvons spécifier le jeu de caractères via les paramètres de l'éditeur. Si vous utilisez l'éditeur Sublime Text, cliquez sur Préférences -> Paramètres et ajoutez le code suivant :
"default_encoding": "utf8"
Cela garantira que lors de l'écriture du code, l'encodage est spécifié en UTF-8 pour éviter le chinois. caractères. Problème de code tronqué.
Dans les applications Web, nous devons spécifier manuellement le jeu de caractères dans le code pour garantir la cohérence avec le jeu de caractères dans la base de données MySQL.
Exemple de code PHP :
//Définissez le format d'encodage sur UTF-8
header("Content-type:text/html;charset=utf-8");
// Connectez-vous à MySQL
$conn=mysqli_connect (" localhost","username","password","dbname");
//Définissez le jeu de caractères de connexion MySQL sur UTF-8
mysqli_query($conn,"set names utf8mb4");
Le pool de connexions dans MySQL peut améliorer l'efficacité des connexions à la base de données et définir le jeu de caractères de la connexion.
Exemple de code Java :
// Créer un pool de connexions
DataSource ds = DruidDataSourceFactory.createDataSource(properties);
// Obtenir la connexion
Connection conn = ds.getConnection();
// Définir le caractère de connexion set
conn .createStatement().execute("set names utf8mb4");
Dans le processus d'importation de données, nous devons spécifier le jeu de caractères si vous utilisez MySQL. ligne de commande pour importer des données, exécutez la commande suivante :
mysql -h yourhost -u youruser -p --default-character-set=utf8mb4 yourdb <
Convertir le jeu de caractères chinoisConvertir le jeu de caractères dans la base de données
Convertissez le jeu de caractères dans la table
Convertissez le jeu de caractères du champ
Le ci-dessus est la solution au problème tronqué du chinois MySQL. En définissant correctement le jeu de caractères de MySQL, en garantissant que le jeu de caractères entre l'application et la base de données MySQL est cohérent et en spécifiant le jeu de caractères lors de l'importation et de la conversion des données, nous pouvons résoudre efficacement le problème du chinois tronqué de MySQL. Dans le même temps, choisissez une méthode appropriée en fonction de la situation réelle pour garantir l'exactitude et la lisibilité 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!