Mysqlデータベースemojiと4バイト文字処理の保存とクエリー
title:mysql 4バイト表情とワード、tags:[mysql,database]categories:[idea,macosx,mysql]date:2018-11-13 00:15:30
私の個人ブログsourcodにアクセスしてください最近古文図書データ処理プロジェクトを行っており、構造化して表に保存する必要がある. 古い文字がデータを保存している間に
資料を検索するとmysql utf-8文字セットは4バイトの「文字」保存をサポートしていないことがわかりました.
ソリューション:データベースとテーブル文字セットをutf 8 mb 4 に変更を変更した後はまだ使いにくいことに気づき、保存方法を実行する前に
保存に成功した後、フィールドに基づいてクエリーし、
ソリューション:資料がバイナリクエリを使用していることが判明しました.
このように
注意nicknameの両側に``を付ける必要があります
私の個人ブログsourcodにアクセスしてください
Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...'
のエラーが発生しました.資料を検索するとmysql utf-8文字セットは4バイトの「文字」保存をサポートしていないことがわかりました.
ソリューション:
ALTER DATABASE CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
set names utf8mb4
文を実行すればよい.保存に成功した後、フィールドに基づいてクエリーし、
Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation
とエラーを報告する必要があります.ソリューション:資料がバイナリクエリを使用していることが判明しました.
BINARY `nickname` LIKE '%?%';
このように
注意nicknameの両側に``を付ける必要があります