mysql存表情失敗、現在試した2つの解決策
2105 ワード
普通の携帯電話の表情で、mysqlが特別に配置されていない前に、普通utf 8、エラー:Incorrent string value:'xF 0'.このような間違いについて、検索して、他人のブログの内容を参考にして、今小さな総括をして、記録して、時々必要にならないようにします.「utf 8の最大の特徴は、長くなる符号化方式であることである.1~4バイトを用いて1つの符号を表すことができ、異なる符号に応じてバイト長を変化させることができる.ここでEmojiの表情は4バイトであり、MySqlのutf 8は最大3バイトまで符号化されるため、データが挿入されない」
ソリューション1:文字セットutf 8-->utf 8 mb 4
【mysqlのバージョンはv 5.5.3.3以上でなければなりません】
[mysqlのプロファイル/etc/mysql/my.cnfを変更し、以下の内容を追加]Windowsシステムであればmyを変更します.iniファイル
設定が完了したら検証してmysql実行文SHOW VARIABLES WHERE Variable_name LIKE ‘character_set_%’ OR Variable_name LIKE ‘collation%’;
以下の構成で試したことがあります.
ソリューション2:base 64ストレージデータベース(バックグラウンドで転送)に変換し、他のコードは試したことがありません.
【nodeでバックグラウンドでトランスコード復号した】
ソリューション1:文字セットutf 8-->utf 8 mb 4
【mysqlのバージョンはv 5.5.3.3以上でなければなりません】
utf8mb4 -- UTF-8 Unicode
emoji utf8mb4_general_ci
utf8mb4
[mysqlのプロファイル/etc/mysql/my.cnfを変更し、以下の内容を追加]Windowsシステムであればmyを変更します.iniファイル
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
設定が完了したら検証してmysql実行文SHOW VARIABLES WHERE Variable_name LIKE ‘character_set_%’ OR Variable_name LIKE ‘collation%’;
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+--------------------------+--------------------+
rows in set (0.00 sec)
以下の構成で試したことがあります.
ソリューション2:base 64ストレージデータベース(バックグラウンドで転送)に変換し、他のコードは試したことがありません.
【nodeでバックグラウンドでトランスコード復号した】
let = Buffer.from( ).toString('base64')
let = Buffer.from( , 'base64').toString()