eomj表情 mysql_mysql存储4字节的表情包数据报异常_Emoji表情包_Incorrect string value: #3...

本文章转载自:https://www.cnblogs.com/coprince/p/7485968.html

原文如下:

问题描述:从新浪微博抓取消息保存到MySQL数据中,对应数据库字段为varchar,字符编码utf-8。部分插入成功,部分插入失败,报错如标题。

在网上查询,有人说是编码问题,建议修改编码格式,比如改成gbk,UTF-8,blob等等,但是几乎没有人给出更详细的答案。在一个英文网站上,才发现真正错误的原因。链接1 链接2

错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范)。正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实际上是它对应的是智能手机输入法中的表情。那为什么会报错呢?因为mysql中的utf-8并不是真正意义上的utf-8,它只能存储1~3个字节长度的utf-8编码,如果想存储4个字节的必须用utf8mb4类型。不而要使用utf8mb4类型,首先要保证Mysql版本要不低于 MySQL 5.5.3。

解决方案:

1)使用utf8mb4数据类型

要用这种策略,如果MySql版本低于5.5.3,首先要进行版本升级,然后将对应的数据类型改为utf8mb4类型。如果使用的是Connector/J 连接数据库,需要在配置中把编码格式改为utf8mb4(set character_set_server=utf8mb4 in the connection config)。

2)自定义过滤规则,将文本中出现的四字节UTF-8字符过滤或转化为自定义类型。

下面是将4字节字符转化为0000的测试例子。

for (int i = 0; i < b_text.length; i++)

{if((b_text[i] & 0xF8)== 0xF0){for (int j = 0; j < 4; j++) {

b_text[i+j]=0x3f;

}

i+=3;

}

}

这就是微学网-程序员之家为你提供的"mysql存储4字节的表情包数据报异常_Emoji表情包_Incorrect string value: "希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/9027.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何快速正确的安装 Ruby, Rails 运行环境

2019独角兽企业重金招聘Python工程师标准>>> 系统需求 首先确定操作系统环境&#xff0c;不建议在 Windows 上面搞&#xff0c;所以你需要用: Mac OS X任意 Linux 发行版本(Ubuntu,CentOS, Redhat, ArchLinux ...)强烈新手使用 Ubuntu 省掉不必要的麻烦&#xff01;…

你怕是对MD5算法有误解

大家常听到“MD5加密”、“对称加密”、“非对称加密”&#xff0c;那么MD5属于哪种加密算法&#xff1f;面试官问这样的问题&#xff0c;准是在给你挖坑。"MD5加密"纯属口嗨&#xff0c;MD5不是加密算法&#xff0c;是摘要算法。今天小码甲带大家梳理加密算法、摘要…

java main 声明_Java中main方面面试题

1.不用main方法如何定义一个类&#xff1f;不行&#xff0c;没有main方法我们不能运行Java类。在Java 7之前&#xff0c;你可以通过使用静态初始化运行Java类。但是&#xff0c;从Java 7开始就行不通了。2.main()方法需要的参数不是字符串数组&#xff1f;不是的&#xff0c;ma…

还在集什么五福,史上最惨锦鲤再次来袭!奖品堪比5年高考3年模拟!

全世界只有3.14 % 的人关注了数据与算法之美在锦鲤盛行的2018年我们超级数学建模也跟风来了一个“史上最惨锦鲤”活动为什么叫史上最惨锦鲤呢因为平常看一本数学书就已经头疼了何况我们奖品还是100本数学书试问除了学霸还有谁能承受这种殊荣巧的是最后的得主还真是一个学霸那就…

Python: logging日志模块简单示例

2019独角兽企业重金招聘Python工程师标准>>> Python的logging模块提供了通用的日志系统&#xff0c;可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别&#xff0c;并可以采用不同的方式记录日志&#xff0c;比如文件&#xff0c;HTTP GET/POST&#x…

开源基金会为何辟谣 鸿蒙背后有何玄机

最近&#xff0c;鸿蒙OS曝光率极高&#xff0c;受网络舆论热捧。铁流原本是不太愿意碰这个雷的&#xff0c;因网友提问&#xff0c;所以谈一谈这个事情。OpenHarmony和Harmony是两回事6月2日&#xff0c;公司官宣鸿蒙OS&#xff0c;给出了百台机型的升级计划&#xff0c;而且还…

java get image获取根路径_Java 获取资源文件路径

1 问题描述通过源码运行时&#xff0c;一般使用如下方式读取资源文件&#xff1a;String str "1.jpg";资源文件与源码文件放在同一目录下&#xff0c;或者拥有同一父级目录&#xff1a;String str "a/b/1.jpg";这样直接编译运行没有问题&#xff0c;但是…

阿里云开源的Blink,计算能力很疯狂:一眨眼,全部都算好!

全世界只有3.14 % 的人关注了数据与算法之美前两天&#xff0c;阿里云宣布开源“计算王牌”——实时计算平台Blink&#xff0c;回馈给ApacheFlink社区。官方称&#xff0c;计算延迟已经降到毫秒级&#xff1a;浏览网页的时候&#xff0c;你只是眨了一下眼睛&#xff0c;但在淘宝…

NET问答: 如何用 C# 计算相对时间 ?

咨询区 Jeff Atwood&#xff1a;给定一个 DataTime 值&#xff0c;如何计算如下时间&#xff1f;比如说&#xff1a;2 小时前&#xff1f;3 天前&#xff1f;1 个月前&#xff1f;回答区 neuracnu&#xff1a;我在 DateTime 类上做了一个扩展方法&#xff0c;你可以给它传递未来…

有趣程序和让人捧腹大笑的注释,你的注释还不够骚

全世界只有3.14 % 的人关注了数据与算法之美一&#xff0c;这个是关于数组的操作&#xff0c;数据汪也是才知道&#xff0c;居然还有这种操作# include <stdio.h>int main(){ int num[] {1,2,3,4};printf("the 3[num] result is : %d\n", 2[num]);return 0;}结…

java linux下载文件_java 从linux 下载文件

public static void main(String[] args) {SshClient client new SshClient();try {ConsoleKnownHostsKeyVerification console new ConsoleKnownHostsKeyVerification();client.connect("192.168.13.51", 22);//IP和端口//设置用户名和密码PasswordAuthentication…

读jQuery之二十(Deferred对象)

Deferred对象是由 jQuery.Deferred 构造的&#xff0c;jQuery.Deferred 被实现为简单工厂模式。 它用来解决JS中的异步编程&#xff0c;它遵循 Common Promise/A 规范。实现此规范的还有 when.js 和 dojo。 $.Deferred作为新特性首次出现在版本1.5中&#xff0c;这个版本利用De…

.NET之盛派微信SDK简单操作

开篇语在6月5号&#xff0c;我报名去参加了微软举办的一个线下分享的技术市集&#xff0c;分享人是苏老师和赵老师(非常感谢)&#xff0c;其中苏老师讲述了关于一些容器的部署等操作(也可以观看我的历史文章)&#xff0c;其中关于部署的示例代码是使用盛派微信SDK做了一个对接微…

预售┃连锁反应装置积木好玩到尖叫!

▲数据汪特别推荐点击上图进入玩酷屋之前推荐的“小小机械师”成了孩子最受欢迎的玩具&#xff0c;玩了的孩子几乎没有不喜欢的。还有家长买多套送给朋友的孩子作为生日礼物。有家长来问&#xff0c;还有没有这种类型的新产品。和厂家咨询后&#xff0c;小木找到了一款“小小机…

java文件调用脚本_Java中调用文件中所有bat脚本

//调用外部脚本String fileipsnull;//所有的路径String[] filesnull;String fileipnull;//单个路径try {InputStream is Thread.currentThread().getContextClassLoader().getResourceAsStream("pdfconfig.properties"); //加载线程文件成为流Properties prop new …

VMware VSphere 虚拟化云计算学习配置笔记(四)

2:接下来配置安装vcenter-db&#xff0c;安装MS SQL 2008r2 在vcenter-db服务器上安装配置MS SQL 2008r2过程截图&#xff1a; 这里可能会要耐心等一下才会出现一下提示&#xff1a; 选择左边installation 之后出现右边第一项新的安装&#xff1a; 转载于:https://blog.51cto.c…

【招聘(北京)】今天誉讯(北京)有限公司招聘高级.NET软件开发前端工程师

.NET高级开发工程师薪水范围&#xff1a;18-25k工作职责1、负责公共平台开发与维护&#xff0c;根据网站发展对技术架构不断调整、对网站性能调优&#xff1b;2、完成详细需求的分析与设计&#xff0c;并完成相关技术文档&#xff1b;3、按照项目任务和项目计划&#xff0c;完成…

IT人回家过年的尴尬

全世界只有3.14 % 的人关注了数据与算法之美春节将至&#xff0c;有很多人已经踏上了返乡的旅途&#xff0c;回家开开心心过春节&#xff0c;归心似箭的心表明了他们对家乡的热爱&#xff0c;归心似箭的心显示了他们想念父母的情&#xff0c;归心似箭的心代表了他们对朋友的思。…

java 判断进程状态_获取远程服务器上 Java 进程的运行状态

为了安全考虑, 有些服务器会被限制登录. 本文介绍如何获取远程服务器上 Java 进程的运行状态.启动 jstatd 服务在服务器端启动 jstatd 服务后, 远程的机器可以通过 rmi 协议获取服务器上 Java 程序的运行状态.在服务器上创建 jstatd 的授权文件, 假设文件路径为/etc/jstatd.all…

彻底搞定C指针-函数名与函数指针[转]

一 通常的函数调用 一个通常的函数调用的例子&#xff1a; //自行包含头文件 void MyFun(int x); //此处的申明也可写成&#xff1a;void MyFun( int );int main(int argc, char* argv[]) {MyFun(10); //这里是调用MyFun(10);函数return 0; }void MyFun(int x) //这…