php emoji 保存 显示不出来,PHP导出带有emoji表情的文本到excel文件出问题了

这篇博客讲述了在处理用户信息导出到Excel文件时遇到的问题,即部分包含emoji表情的数据丢失。作者通过缩小数据范围定位到问题,发现emoji表情是导致数据丢失的原因。通过编写过滤emoji的函数成功解决了问题。同时,文章还提及了如何利用API设置Excel的页眉页脚,以及在数据库中存储和处理emoji表情的经验。
摘要由CSDN通过智能技术生成

前段时间做了一个导出用户信息(包含微信昵称)到excel文件的功能,一直没问题,今天突然有人反馈说导出来的数据有一些丢失了。我试了一下,发现有些数据导出没问题,有些有问题,某些列出现了空白,数据打印出来是没问题的,但是输出到excel文件中就出问题了。因为打开导出的excel文件的时候提示存在无法读取的内容,所以我猜想可能是数据中存在某些特殊字符导致的。不断缩小导出的数据范围进行重试后,终于锁定了问题,原来是用户的微信昵称中出现emoji表情导致的,将其过滤掉再导出就好了。

emoji表情过滤函数:

/**

* 过滤文本中的emoji表情包(输出到excel文件中会导致问题)

* @param string $text 原文本

* @return string 过滤emoji表情包后的文本

*/

function removeEmoji($text){

$len = mb_strlen($text);

$newText = '';

for($i=0;$i

$str = mb_substr($text, $i, 1, 'utf-8');

if(strlen($str) >= 4) continue;//emoji表情为4个字节

$newText .= $str;

}

return $newText;

}

如何利用API导出带有页眉页脚的excel

 在报表中设置的页眉页脚在页面中是看不到的,如下图: 页面中的效果: 在打印的时候,可以看到页眉页脚的效果: 那么,如果将页眉页脚导入到导出的excel中呢.我们可以通过API来进行设置: &lt ...

字符串中带有emoji表情处理

1:先删除字符然后解析当前字符再显示 edit.addTextChangedListener(new TextWatcher() { @Override public void beforeTextC ...

自定义控制台程序导出角色对实体的权限为Excel文件

本人微信公众号:微软动态CRM专家罗勇 ,回复282或者20181116可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 先上 ...

Java导出页面数据或数据库数据至Excel文件并下载,采用JXL技术,小demo(servlet实现)

public class ExportExcelServlet extends HttpServlet { /** * */ private static final long serialVersi ...

MySQL中支持emoji表情的存储

由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...

数据库需要支持emoji表情

由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...

mysql存储emoji表情

微信获取的用户昵称nickname中带有emoji表情,转换成字符码后是这种形式“\xF0\x9F\x91\x8D\xE6\x94...”, 直接保存可能出现以下错误 Caused by: java. ...

判断EditText输入的字符串中是否包含有emoji表情

我们在实际的开发中经常需要用到EditText 但是有一个不好的地方就是我们在前端用EditText输入了带有emoji表情的字符串之后 服务器是无法识别的,这就需要我们前端根据需求来决定表情的去留, ...

MySQL保存 emoji 表情(微信昵称表情)

问题分析 在微信开发过程中,总是会遇到带有emoji表情昵称的微信用户无法自动登录的问题. 后台代码抛出类似下面的异常信息. java.sql.SQLException: Incorrect stri ...

随机推荐

耿丹CS16-2班助教总结

Deadline: 2016-1-7 11:59pm 开篇有言 --又是一年末,不似风光,却添风霜,顶霾前进,踽踽独行,可乎? 助教那些事儿 助教这份工作是之前就担任过的,很羞愧,当时才担任了几天就撒 ...

Activiti-explorer 在tomcat中部署报HTTP Status 404问题

如果tomcat版本没错,请检查一下文件,将Activiti中war文件夹中的内容复制到webapp下,而不是将文件夹整个放进去……

转盘游戏[XDU1006]

Problem 1006 - 转盘游戏 Time Limit: 1000MS   Memory Limit: 65536KB   Difficulty: Total Submit: 87  Accep ...

.Net互操作2

1.C++创建Dll,Win32控制台,空项目,添加头文件NativeLib.h,NativeLib.cpp extern "C" __declspec(dllexport) vo ...

MAC OS U 盘制作与安装方法

伴随着 iMac 5K Retina 和新的 Mac mini 等硬件的发布,苹果终于都推出了 OS X Yosemite 系统正式版了!相信很多人都已经用上.不过对于一些不想升级,而是打算「全新安装 ...

可写的计算监控(Writable computed observables)

新手可忽略此小节,可写依赖监控属性真的是太advanced了,而且大部分情况下都用不到. 一般情况下,计算监控的值是通过其他监控属性的值计算出来的,因此它是只读的.这个看似很奇怪,我们有什么办法可以让 ...

Operating system error 32(failed to retrieve text for this error. Reason: 15105)

一台数据库服务器的事务日志备份作业偶尔会出现几次备份失败的情况,具体的错误信息为: DATE/TIME:    2018/7/30 12:10:52 DESCRIPTION: BackupDiskFi ...

安装FireEye渗透测试套件commando-vm

前两天FireEye开源了套他们自己的渗透测试工具,玩了下,这里简单讲一下我安装的过程. 1.首先是虚拟机,在virtualbox或者vmware中安装一个新的Windows系统,win7或者win1 ...

保存一个经常用的Makefile

############################################################# # Generic Makefile for C/C++ Program # ...

C# BindingSource

1.引言 BindingSource组件是数据源和控件间的一座桥,同时提供了大量的API和Event供我们使用.使用这些API我们可以将Code与各种具体类型数据源进行解耦:使用这些Event我们可以 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值