😼がそれをつまずかせていた場合、それは😼がUnicodeの基本多言語面にないためです。これは、U + FFFFより上にあり、UTF-8では3バイトではなく4バイトを占める補足多言語面にあります。完全に準拠したUnicode実装は、それらを同じように扱いますが、MySQL文字セットutf8はU+FFFFより上の文字を受け入れません。 MySQLの最新バージョンを使用している場合は、ALTER TABLEを使用して、すべてのUnicode文字を適切に処理するutf8mb4を使用できます。 MySQLは文字ごとに3バイトではなく4バイトを割り当てるため、変更にはいくつかの問題があります。 http://dev.mysql.com/を参照してください。 doc / refman / 5.5 / en / charset-unicode-upgrading.html 詳細については。
この問題は、 UTF-8でエンコードされた文字列をUTF-8でエンコードされたmysqlテーブルに挿入すると、「文字列値が正しくありません」で失敗します 。