ホームページ >データベース >mysql チュートリアル >MySQL が稀な文字の挿入に失敗した場合の対処方法

MySQL が稀な文字の挿入に失敗した場合の対処方法

小云云
小云云オリジナル
2018-01-13 16:50:061670ブラウズ

ビジネス側は、一部のユーザー情報の挿入に失敗し、「不正な文字列値:"xF0xA5...." のようなエラー メッセージが表示されたと報告しました。このプロンプトは、文字セットが特定のまれな文字をサポートしていないために発生するはずです。この記事は、MySQL の稀な文字挿入エラーの問題を解決する方法について説明します。

以下は、仮想マシンで再現されるシナリオです。

ステップ 1。文字セット環境:


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='会员卡';

step2. レア文字の挿入 (sqlyog を使用) シミュレーション):

1. まずオンライン環境をシミュレートし、文字セットを設定します:

MySQL が稀な文字の挿入に失敗した場合の対処方法

2.文字については、以下を参照してください: http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=257E3)

MySQL が稀な文字の挿入に失敗した場合の対処方法

Wang を挿入してみます (Word で Alt キーを押しながら、 152964 と入力します)。挿入が失敗していることがわかります。

ステップ 3、real_name の文字セットを変更します。大規模なオンライン テーブルの場合は、pt-osc を使用して処理できます。次のように:


use test;

alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' ;


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

ステップ 4. 実験を再度挿入します:

1. 最初に文字を設定します:


2. もう一度挿入すると、挿入が成功したことがわかります。

MySQL が稀な文字の挿入に失敗した場合の対処方法

コマンドラインでクエリを実行してもコードが文字化けすることはありません:

MySQL が稀な文字の挿入に失敗した場合の対処方法これを参照してください:

中国語の変換をサポートする php の開発例。珍しい文字をピンインに変換する

MySQL が稀な文字の挿入に失敗した場合の対処方法

珍しい文字に関するおすすめの記事 10 選

珍しい文字をサポートし、UTF-8 エンコーディングを自動的に認識する PHP の中国語文字をピンインに変換する Class_PHP チュートリアル

以上がMySQL が稀な文字の挿入に失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。