Maison > Article > base de données > Que faire si MySQL ne parvient pas à insérer des caractères rares
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='会员卡';
é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 :
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)
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 '姓名' ;
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
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
étape 4. Insérez l'expérience. encore une fois :
1. Définissez d'abord le jeu de caractères :
2. Insérez à nouveau et vous pouvez voir que l'insertion est réussie. >
Il n'y a pas de code tronqué lors de l'interrogation dans la ligne de commande :
C'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 rares10 articles recommandés sur les caractères raresClasse 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 PHPCe 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!