业务逻辑:把从通过程序编辑的一个多维数组,通过序列化为一个字符串,储存到Mysql数据库中。

问题:在编辑完数组后,序列化完毕并保存到数组中,这些都很顺利,问题出在反序列化的时候,

问题提示是:

unserialize-error-at-offset-5-of-9-bytes

尝试1,试了试以前导入进去的数据,反序列化并没有问题。

尝试2,数据库编码与php文件编码不一致,重新设置了php文件编码为utf8,与数据库保持一致,测试,问题没有解决。

尝试3,百度下,有哥们数把数据库保存的类型 由 varchar 改为 text 问题解决了,看了下数据库类型 是longtext类型,没有问题。

尝试4,试着对比以前的数据,发现有一些数据是识别不了的,仔细查了查,原来这些是表情符号,猜想可能是反序列化的时候

解析不了这些表情符号,所以返回的布尔值。然后把数据库字段类型的字符集从utf8改为utf8mb4,再重新编辑数组,序列化数据,

添加数据,反序列化,这次没问题了,解决了。

原因:是因为新增的数据有了表情符号,而数据库的类型是utf8在储存的时候不能解析表情,最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。

三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,

都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),

和很多不常用的汉字,以及任何新增的 Unicode 字符等等。

这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode,它能够处理Emoji 表情。

从MYSQL5.5开始,才可支持4个字节UTF编码utf8mb4。

php 反序列化报错,php 反序列化报错及解决相关推荐

  1. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题

    继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...

  2. 【笔记】虚拟机用Xshell登陆报错“ssh服务器拒绝了密码”解决方法

    [笔记]虚拟机用Xshell登陆报错"ssh服务器拒绝了密码"解决方法 参考文章: (1)[笔记]虚拟机用Xshell登陆报错"ssh服务器拒绝了密码"解决方法 ...

  3. eclipse中同步代码PULL报错checkout conflict with files的解决方法

    eclipse中同步代码PULL报错checkout conflict with files的解决方法 参考文章: (1)eclipse中同步代码PULL报错checkout conflict wit ...

  4. linux yum install libsdl-dev 报错:No package libsdl-dev available 解决方法

    执行 $ yum install libsdl-dev 报错:No package libsdl-dev available. 解决办法: $ yum search sdl | grep devel ...

  5. mtk一键usb驱动_三菱MRJEB驱动器报错,导致报错原因37.1参数设置范围异常?

    三菱MR-JE-B驱动器报错,导致报错原因37.1参数设置范围异常?最近海蓝机电工程师们在做一个项目,做的是三菱MR-JE-B驱动器.工程师们在实操这个项目过程中遇到各种问题,其中就像驱动器报错的问题 ...

  6. 手机系统安装打印机服务器错误代码,OKI打印机报错?各型号代码故障解决方法...

    原标题:OKI打印机报错?各型号代码故障解决方法 这一期干货贴邀请大家一起看看OKI打印机常见报错代码↓↓↓ 1.报错代码 610/611/612/613 黄色/品红色/青色/黑色碳粉盒未安装 产生原 ...

  7. VSCode内npm run build编译打包时候报错:code ELIFECYCLE - (已解决)

    文章目录 win10系统使用VSCode打包项目进行build编译的时候,报错:Module build failed: Error: "extract-text-webpack-plugi ...

  8. Oracle 创建磁盘组报错ORA-15137的问题分析与解决思路

    点击上方"蓝字" 关注我们,享更多干货! ASM扩容本来是件很简单的事,当ASM磁盘准备好之后,直接一条命令就会添加上.但是也会有异常情况,最近就碰到Oracle 19c在扩容时报 ...

  9. DeepFaceLab报错,CUDA driver is insufficient 解决方法!

    DeepFaceLab报错,CUDA driver is insufficient 解决方法! 参考文章: (1)DeepFaceLab报错,CUDA driver is insufficient 解 ...

  10. phpredis 报错 “Function Redis::setTimeout() is deprecated” 解决方法

    phpredis 报错 "Function Redis::setTimeout() is deprecated" 解决方法 参考文章: (1)phpredis 报错 "F ...

最新文章

  1. Android实现系统关机和重启
  2. 罚函数法求解约束问题最优解
  3. 吴裕雄--天生自然 高等数学学习:多元函数的概念
  4. DL之DNN优化技术:神经网络算法简介之数据训练优化【mini-batch技术+etc】
  5. 大数据初学者必备的详细版学习路线图
  6. PostgreSQL递归查询
  7. docker初级操作
  8. DotNetNuke 4/5 安装提示 msajax错误,下载AJAX 1.0即可解决
  9. python 类与类之间的关系
  10. SurfaceGo使用体验(使用半年后)
  11. hdu3790最短路问题
  12. 【写作技巧】毕业设计的附录放在论文的哪个位置?
  13. python跑酷游戏源码_开源一款酷跑游戏源码完整版
  14. 社交网络分析的 R 基础:(一)初探 R 语言
  15. 国际奥林匹克运动会是怎么来的?
  16. 字节跳动大数据中心17万服务器硬实力支撑今日头条等产品线(公号回复“字节跳动”下载PDF典型资料,欢迎转发、赞赏支持科普)
  17. iOS 13 修改状态栏背景色
  18. 计算机常用软件英文读音,学习英文在线发音的软件有哪些?宝妈推荐的这些超级实用...
  19. java 使用subList痛彻心扉的领悟
  20. 深度学习笔记之关于常用模型或者方法

热门文章

  1. Error: [AssetLibrary] loading JSON or dependencies failed: undefined
  2. ⭐算法入门⭐《模拟》中等01 —— LeetCode 8. 字符串转换整数
  3. 聪明的投资者-读书笔记
  4. [SqlServer]创建链接服务器
  5. 谈情说爱千万条,情绪稳定第一条
  6. 【Vue】实现登录功能
  7. android字节流压缩,Android压缩图片,程序崩溃
  8. 贝叶斯优化xgboost_超参数调整xgboost和神经网络的hyperopt贝叶斯优化
  9. Java平方计算GUI编程
  10. PRI及其应用——TFNT6300A千兆以太网测试仪