美文网首页
MySQL保存 emoji 表情😈

MySQL保存 emoji 表情😈

作者: Julian1009 | 来源:发表于2018-07-09 20:30 被阅读0次

问题分析总结:
原因

普通的字符串或者表情都是占位3个字节,所以utf8足够用了,
但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,
为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,这必须要作为移动互联网行业的一个技术选型的要点

限制

需要 >= MySQL 5.5.3版本、从库也必须是5.5的了、低版本不支持这个字符集、复制报错。

Emoji表情符号录入MySQL数据库报错的解决方案
适用ios,android,wp等平台手机emoji表情符号兼容方案
emoji 表情字符插入的配置,emoji表情字符插入

注意:

由于数据表的字符集改变了,varchar类型数据的字符集也改为了utf8mb4_unicode_ci,所以在查询的时候,一定注意以这个字段为条件的时候,字段的数据类型是不是字符串类型。如果这个字段的字符集是utf8mb4_unicode_ci,而查询的时候是一个Int型的数组,那么一定查不到数据的。

再有:

由于我使用的Laravel框架,一定要在config/database.php文件中修改编码方式和字符集

'mysql' => [
         'driver' => 'mysql',
         'host' => env('DB_HOST', 'localhost'),
         'port' => env('DB_PORT', '3306'),
         'database' => env('DB_DATABASE', 'forge'),
         'username' => env('DB_USERNAME', 'forge'),
         'password' => env('DB_PASSWORD', ''),
         'charset' => 'utf8mb4',
         'collation' => 'utf8mb4_unicode_ci',
         'prefix' => 'FN_',
         'strict' => false,
         'engine' => null,
     ],

Laravel项目中使用mysql存储emoji表情乱码的问题
修改及查看mysql数据库的字符集

相关文章

网友评论

      本文标题:MySQL保存 emoji 表情😈

      本文链接:https://www.haomeiwen.com/subject/xilqattx.html