ホームページ >データベース >mysql チュートリアル >MySQL が稀な文字の挿入に失敗した場合の対処方法
ビジネス側は、一部のユーザー情報の挿入に失敗し、「不正な文字列値:"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. まずオンライン環境をシミュレートし、文字セットを設定します: 2.文字については、以下を参照してください: http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=257E3) 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. 実験を再度挿入します:
これを参照してください:
中国語の変換をサポートする php の開発例。珍しい文字をピンインに変換する珍しい文字に関するおすすめの記事 10 選
珍しい文字をサポートし、UTF-8 エンコーディングを自動的に認識する PHP の中国語文字をピンインに変換する Class_PHP チュートリアル
以上がMySQL が稀な文字の挿入に失敗した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。