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

Que faire si MySQL ne parvient pas à insérer des caractères rares

小云云
Libérer: 2018-01-13 16:50:06
original
1639 Les gens l'ont consulté

Le côté commercial a signalé que l'insertion des informations utilisateur individuelles a échoué et que le message d'erreur était similaire à "Valeur de chaîne incorrecte :"xF0xA5...." Cette invite devrait être provoquée par le jeu de caractères ne prenant pas en charge un certain caractère rare. . Alors, comment le résoudre ? Cet article vous expliquera comment résoudre le problème d'échec d'insertion de mots rares dans MySQL

Voici le scénario reproduit dans la machine virtuelle :

étape. 1. Simulez l'environnement de jeu de caractères de la structure de table d'origine :


use test;
CREATE TABLE `t1` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `real_name` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '姓名',
 `nick` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '昵称',
 PRIMARY KEY (`id`)
) ENGINE=InnoDBAUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员卡';
Copier après la connexion

étape 2. Insérez des caractères rares (utilisez la simulation sqlyog) :

1. l'environnement en ligne et définissez le jeu de caractères :

Que faire si MySQL ne parvient pas à insérer des caractères rares

2. Insérez des caractères rares (pour les caractères rares, veuillez vous référer à : http://www.qqxiuzi.cn/zh/ hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=257E3)

Que faire si MySQL ne parvient pas à insérer des caractères rares

Nous essayons d'insérer Wang (maintenez alt dans le mot et entrez 152964). l'insertion échoue.

Étape 3. Modifiez le jeu de caractères de real_name :


use test;

alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' ;
Copier après la connexion

S'il s'agit d'une grande table en ligne, vous pouvez utiliser pt. -osc pour le traiter La commande est la suivante :


pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --dry-run
Copier après la connexion


pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --execute
Copier après la connexion

étape 4. Insérez l'expérience. encore une fois :

1. Définissez d'abord le jeu de caractères :

Que faire si MySQL ne parvient pas à insérer des caractères rares

2. Insérez à nouveau et vous pouvez voir que l'insertion est réussie. >

Que faire si MySQL ne parvient pas à insérer des caractères raresIl n'y a pas de code tronqué lors de l'interrogation dans la ligne de commande :

Que faire si MySQL ne parvient pas à insérer des caractères raresC'est tout.

Recommandations associées :

Exemple de développement de php prenant en charge la conversion des caractères chinois en pinyin pour les caractères rares

10 articles recommandés sur les caractères rares

Classe de conversion de caractères chinois PHP en pinyin qui prend en charge les caractères rares et reconnaît automatiquement l'encodage UTF-8_Tutoriel PHP

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!

Étiquettes associées:
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