Maison  >  Article  >  base de données  >  Que faire si MySQL ne parvient pas à insérer des caractères rares

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

小云云
小云云original
2018-01-13 16:50:061632parcourir

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 :

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 '姓名' ;

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 :

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!

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