php保存emoji表情,php保存emoji表情
最近一个朋友在调用微信接口的时候,获取到的数据保存到数据库失败了,原因是因为里面含有emoji表情,接下来吾爱编程为大家介绍一下关于php保存emoji表情的方法,有需要的小伙伴可以参考一下:
1、保存失败的原因:
正常设计数据库的时候编码我们一般设置的是utf8格式的,utf8格式的字符集是3个字节,而emoji表情的字符集对应的是4个字节的,所以会保存失败。
2、解决方法:
(1)、更改数据库的编码格式:
数据库的编码改成utf8mb4,然后需要存储emoji表情的字段选择utf8mb4_general_ci。
ps:不建议使用这种处理方法,因为更改了编码格式会有一系列的问题,比如utf8mb4的性能可能比utf8系列的collations低,在索引中,对于文本类型的字段,utf8mb4可索引的字符少于utf8系列的collations。
(2)、使用base64编码:
使用base64编码的时候,一定要保证之前的数据也做了相应的转码,不然会导致数据丢失。
(3)、emoji表情转义:<?php
/**
*把用户输入的文本转义(主要针对特殊符号和emoji表情)
*将emoji的unicode留下,其他不动,这里的正则比原答案增加了d,因为我发现我很多emoji实际上是\ud开头的,反而暂时没发现有\ue开头。
*/
public function userTextEncode($str) {
if(!is_string($str)) return $str;
if(!$str || $str == 'undefined') return '';
$text = json_encode($str); //暴露出unicode
$text = preg_replace_callback("/(\\\u[ed][0-9a-f]{3})/i", function ($str) {
returnaddslashes($str[0]);
}, $text);
returnjson_decode($text);
}
/**
*解码上面的转义
*将两条斜杠变成一条,其他不动
*/
public function userTextDecode($str) {
$text = json_encode($str);
$text = preg_replace_callback('/\\\\\\\\/i', function ($str) {
return'\\';
}, $text);
returnjson_decode($text);
}
turnjson_decode($text);
}
以上就是吾爱编程为大家介绍的关于php保存emoji表情的方法,了解更多相关文章请关注吾爱编程网!
php保存emoji表情,php保存emoji表情相关推荐
- 微信昵称包含emoji表情,保存异常
MySQL要存储emoji表情,由于emoji表情的unicode编码占用4个字节,而Mysql的utf8编码最多只能存储3个字节, 所以保存到数据库时会产生异常,一般两种解决方法, 方法一 修改数据 ...
- java 过滤微信昵称_java过滤微信昵称emoji表情与非emoji的问题解决方法
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 过滤emoji表情与非emoji表情 * @author h ...
- emoji 原生表情解析成对应表情包png
最近刚完成一个给客服用的客服软件,用的是c#,这里记录的是我的聊天窗口(控件webBrowser)里,采用html标签解析聊天内容,如何实现将emoji原生表情解析成对应表情包中的png. 首先win ...
- mysql 过滤emoji表情_MySQL中emoji表情过滤
问题描述 最近在对线上排错过程中发现很多入库时产生的错误日志,表现形态如下 Incorrectstringvalue:'\xF0\x9F\x91\x8D\xE6\x94...'forcolumn'co ...
- 【博客表情包】emoji和符号表情包
[博客表情包]emoji和符号表情包 带图网站 博客使用 常见的心心 符号表情 感谢大家的博客,让我发现了很多有趣的技术,欢迎各位大佬在评论区补充~ 看到有的大佬博客标题带有
- java emoji 编码_Java对Emoji表情编码与解码
Java对Emoji表情编码与解码,使用到Java Emoji Converter . GitHub地址:https://github.com/binarywang/java-emoji-conver ...
- java emoji过滤_java过滤emoji表情
java手机端网页常用的过滤emoji表情,注意:过滤常规emoji表情,iso或安卓一些手机自带的特殊表情不在过滤范围 import java.util.regex.Matcher; import ...
- access如何保存小数点后_搞笑沙雕表情包合集,顺便教会你保存后如何转换成微信表情包...
1.表情包三巨头之一日本声优花泽香菜,这个魔性的微笑是她在一次综艺节目中偶然露出的,随即在网络上走红. 别看花泽香菜这个表情包那么魔性,其实她不露出这个表情的时候是个女神哦! 2.打工是不可能打工的, ...
- Lable加载 类似QQ表情 (unicode emoji字符集)
Lable加载 类似QQ表情 (unicode emoji字符集) 偶然看到一篇文,发现竟然可以在iPhone中显示类似qq表情的符号.原来很简单,是iPhone支持unicodeemoji字符集缘故 ...
最新文章
- 仔细选择会话状态提供程序
- 互联网金融2.0 这是最好的时代
- svchost.exe介绍
- libevent源码分析:eventop
- SMMS 2016 啟用深色主題
- 《转》VC++多线程编程
- POJ1661 Help Jimmy(dp)
- CSU 1120 病毒
- s8 android10,旧机不是部部有 三星 Galaxy S8 将不会获得 Android 10 更新
- Android多媒体框架图
- 【JavaScript回顾】闭包
- PyQt5之QDateTimeEdit编辑日期时间
- Error Code: 1318. Incorrect number of arguments for PROCEDURE student.new_procedure; expected 0, got
- STM32—sg90编程
- 有限责任公司破产清算程序有哪些
- 魅族flashfire_高通平台所有黑砖(不开机)手机通用救砖方法
- 电晕放电和击穿空气有何区别?---气体放电管击穿放电
- 封闭式基金周折价率排行表20061013(ZT)
- python输出唐诗 青少年编程电子学会python编程等级考试二级真题解析2021年12月
- arcgis计算坡度
热门文章
- 自主云服务器处理器_统信服务器操作系统 V20 欧拉版发布
- c语言学习进阶-C语言程序实现生成指定区间指定个数随机数
- mysql optimizertrace_MySQL 调优 | OPTIMIZER_TRACE详解
- (八)构建一个Docker容器来训练Deep Fake Autoencoders
- 逐步淘汰,微软宣布多款产品将停止支持 IE11
- 通过GitHub Actions构建和部署Jekyll网站
- python如何进行web开发_如何用Python做Web开发
- 关于axios拿取后端hashMap存的值
- linux nginx编译安装mysql_Centos7下编译安装配置Nginx+PHP+MySql环境
- 不同分辨率图片匹配_超实用的图像超分辨率重建方法及应用介绍