数据库处理emoji
来源:互联网 发布:asp.net购物车源码 编辑:程序博客网 时间:2024/06/05 21:17
遇到问题,别人评论一个内容,加了表情,api返回数据Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column或者使用微信登陆的时候也会遇到这个问题,微信名称带表情。不能存到数据库。原因是Mysql的utf8字符集是3字节的,而emoji是4字节,所有不能够存入。提供三种方法解决:
1、使用正则去掉表情
$nickName = preg_replace_callback('/[\xf0-\xf7].{3}/',function($r) { return '';}, $nickName);
2、将表情base64转化之后存入数据库,取出来的时候base64一下就行入库:$nickName = preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '@E' . base64_encode($r[0]);}, $nickName);
出库:$nickName = preg_replace_callback('/@E(.{6}==)/', function($r) {return base64_decode($r[1]);}, $nickName);
3、改数据库类型(由于是线上的数据库,我怕弄坏,所有我使用的是第二种方法)
前提条件mysql版本>=5.5.3
将字段,表,数据库连接全都由utf8直接升级为utf8mb4字符集
1 0
- 数据库处理emoji
- emoji表情处理保存到数据库
- 关于emoji表情数据库处理方案 iOS 新手笔记
- emoji处理方式大起底
- andoid emoji表情处理
- emoji处理方式大起底
- 处理Emoji表情(unicode)
- emoji表情处理
- php emoji表情处理
- Emoji 特殊字符处理
- Emoji表情处理
- emoji处理方式大起底
- Android Emoji的处理
- Emoji表情后台处理
- java处理emoji表情
- php处理emoji
- golang emoji表情处理
- Emoji处理方式大起底
- Volley
- CSS3 多列
- 【Codewars】Roman Numerals Encoder 正整数转罗马数字
- push_heap 源码剖析
- 三消
- 数据库处理emoji
- iOS图片压缩
- myeclipse配置JDK
- java的内存分配
- elasticsearch2.3.3 java client demo
- leetcode No35. Search Insert Position
- Git@OSC服务器和Xcode的git管理工具简单使用
- Spring IOC理解
- fscanf函数,从.txt中一次性读取指定数量的数据