mysql存储表情包的坑

后端如何存储表情包? 前几天项目需要后端支持存储输入法中的表情包,一开始以为挺复杂,结果大意了。 站在巨人的肩膀上让后端支持存储表情包简单的很。 数据流很简单如下: 所以与其说是让后端支持存储表情包,倒不如说成是让MySQL支持存储表情包。 而且像123、abc这种字符串也好,或者是123这种数字也好,亦或是表情包也罢,他们其实都有自己对应的编码格式、或者是编码表。就好比ASCII编码表中包含了a、b、c...z 等如下: ACSII表中的符号占一个字符,对欧美佬来说,ACSII表中的符号可能以及基本够用了,但是对亚太地区 阅读详情

遇坑:

     今天在项目当中,发现往数据库里添加表情包时,服务器返回500。上网调查之后发现一般数据库编码格式为utf-8,支持三个字节,但是表情包是个奇葩,他是四个字节,所以你在往数据库里存储时会报错。

分析:

      既然知道问题是编码格式问题,那就改编码格式呗。utf8mb4可以支持四个字节,很多人就直接去修改库编码属性。这样做法是不好的,需要重启数据库,这在生产环境是非常危险的事。当然网上解决办法很多,但个人倾向于下面这种解决方案。

具体解决方案:

     1.修改相对应表的字段属性编码格式改为utf8mb4。

     2.项目中找到设置数据源的xml配置文件,添加如下几行代码。

      

       我的是在hms-service-database.xml文件中 

bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
        <property name="url"><value>${jdbc.url}</value></property>
        <property name="username"><value>${jdbc.username}</value></property>
        <property name="password"><value>${jdbc.password}</value></property>
        <property name="maxActive"><value>${jdbc.maxActive}</value></property>
        <property name="maxWait"><value>${jdbc.maxWait}</value></property>
        <property name="maxIdle"><value>${jdbc.maxIdle}</value></property>
        <property name="initialSize"><value>${jdbc.initSize}</value></property>
        <property name="timeBetweenEvictionRunsMillis"><value>28800</value></property>
        <property name="removeAbandoned"><value>true</value></property>
        <property name="testWhileIdle"><value>true</value></property>
        <property name="testOnBorrow"><value>false</value></property>
        <property name="validationQuery"><value>SELECT 1</value></property>
        
    </bean>

添加属性代码如下

        <property name="connectionInitSqls">
            <list>
                <value>set names 'utf8mb4'</value>
            </list>
        </property>

结果:

     重新进行存储,问题完美解决。

关于Python爬虫之获取海量表情包+存入数据库+搭建网站通过关键字查询表情包 目标:获取海量表情包,存入数据库,然后搭建简单网站通过输入关键字获取对应的的表情包 这里我们的首先要爬取表情包的网站是这个网站: http://www.doutula.com/photo/list/?page=0 我们先来分析一下这个网页的源代码: 源码里面可以发现我们需要的内容然后去用正则表达式获取,然后存入数据库 同时在源码最上面可以看见网页是utf-8编码的。 阅读详情

相关推荐

Android即时通讯表情包集成详解

本文还有配套的精品资源,点击获取 简介:该压缩包内容可能是针对易信、QQ、微信和陌陌等中国流行即时通讯软件的表情包或相关组件,用于在Android设备上提供丰富的表情功能。它可能包含表情符号的数据库文件、表情包说明以及一个用于演示表情集成和使用方法的工具。开发者将需要掌握SQLite数据库操作、资源管理、自定义输入法集成、XML布局设计以及与即时通讯应用API对接等技术点,...

weixin_42513209的博客 2568

mysql数据库支持emoji表情的详解

mysql之前的编码设置一直是utf8,但是在存emoji表情的时候,就会报错,如下: Error updating database. Cause: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98\x8A\xF0\x9F…’ for column ‘这是我表中的字段’ at row 1 初步定位是数据库不支持emoji表情...

zhangsir的博客 1万+

速腾R128雷达+海康全景相机ROS数据采集避坑实录:从‘雷达不转’到MATLAB标定的完整流程

本文详细记录了速腾R128激光雷达与海康威视全景相机在ROS环境下的数据采集与MATLAB标定全流程。从硬件配置的常见陷阱(如雷达旋转参数设置)、驱动编译的依赖管理,到多传感器同步的实战技巧和MATLAB标定方法,提供了完整的避坑指南和技术方案。特别针对RoboSense R128雷达和海康相机的特殊需求给出了具体解决方案。

weixin_28717807的博客 1218

MySQL 存储emoji表情字段

有些场景下用户昵称带有emoji表情字符,现在说一下mysql数据库保存emoji表情的办法。第一、utf8mb4 字符集可以存储emoji表情字符,所以数据库表字段必须是utf8mb4 字符集。至于表甚至数据库是否也要使用utf8mb4 字符集我没有测试,最好数据库和表也默认采用utf8mb4 字符集。第二、数据库连接要用unicode,字符编码用utf8jdbc:mysql://IP:3306...

keketrtr的专栏 4319

Gromacs GPU加速版安装全攻略:从依赖配置到性能优化

本文提供了Gromacs GPU加速版的完整安装与性能优化指南。详细介绍了从编译器、OpenMPI、FFTW到CUDA等关键依赖的配置,手把手指导编译支持CUDA的Gromacs,并深入解析了如何通过调整.mdp参数及平衡MPI与OpenMP线程分配,最大化GPU利用率,从而让分子动力学模拟效率获得数十倍提升。

y9z0a1b的博客 1149

Ubuntu20.04/Debian10安装向日葵远程控制踩坑实录(附依赖问题解决方案)

本文详细介绍了在Ubuntu 20.04/Debian 10系统上安装向日葵远程控制软件的全过程,重点解决了常见的依赖问题,特别是libwebkitgtk相关错误。通过自动修复、手动修改.deb包依赖和使用兼容层三种解决方案,帮助用户顺利完成安装并优化远程控制体验。

silver的专栏 749

mysql 表情,MySQL emoji表情-字段或表支持表情

一般我们数据编码格式默认设置为utf-8, 但是utf-8并不支持表情,而表情需要utf8mb4字段(向下兼容utf-8)1 : 在终端或者SSH shell登录服务器,2 : 修改 my.cnf (linux)或者mysql.ini (win)vim /etc/my.cnf添加或者修改以下内容:[client]default-character-set = utf8mb4[mysql]defau...

weixin_33745224的博客 821

FIFO Generate IP核使用——FIFO写操作详解及Status Flags页配置

本文介绍了FIFO的写操作及Status Flags页的配置信息。

u011565038的博客 2283

mysql存储特殊表情符号,解决mysql存储特殊文字(表情符号)utf8mb4

alter table jw_crm_article modify column content longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '文章内容';是因为\xF0\x9F\x90\xB6 它通常是4个字符存储,而mysql的utf8默认是3个字符存储。4、最后确认数据表中的字段,存储这种特殊文字的字段字符编码也是utf8mb4。1、 更改代码中数据库连接的字符编码charset为utf8mb4。...

xiaowei20091124的专栏 3207

渗透测试工具之Sliver

攻击者需要将生成的植入物传输到目标系统,并执行它。C2 框架的架构与 Metasploit(如 Meterpreter)类似,但更专注于。(Red Teaming)中常见的攻击工具之一,攻击者利用 C2 服务器。组成,二者共同实现 C2 服务器与受控设备的通信。植入物(Implants)是 Sliver 生成的。抓包分析时,可以看到所有数据都是加密传输的。和**监听器(Listeners)**功能。Sliver 支持多种通信协议,如。随着安全防御的不断提升,企业应加强。进行通信,数据仍然是加密的。

idlecloud0105的博客 1934

实例详解C++程序的五大内存分区

本文详细讲述C++程序在运行时的5大内存分区。 下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区。 1、栈内存区 栈内存区是我们用的最多的分区,只要有函数的地方都会使用到这个分区。栈分区是用来存放函数参数及函数局部变量值的内存区,是由编译器在编译时自动分配和释放的。 函数中的参数与函数中的局部变量占用的内存是代码执行到函数(进入函数)是分配的,在............

dvlinker的技术专栏 1万+

MySQL 支持emoji表情

一般我们数据编码格式默认设置为utf-8, 但是utf-8并不支持表情,而表情需要utf8mb4字段 所以我们需要设置mysql字符集格式为utf8mb4 1.修改数据库 表 和字段的字符集 1 修改数据库字符集: ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; 2 修改表的字符集: ALTER TABLE table_name CONVERT TO CHARACTER SET utf8

weixin_44919207的博客 573

Python 爬虫实战:深入闲鱼平台,抓取二手好物价格波动数据

本文介绍了如何利用Python爬虫抓取闲鱼(Xianyu)二手交易平台的商品价格数据并分析其波动趋势。通过requests和BeautifulSoup库实现网页数据抓取与解析,使用pandas进行数据清洗和存储,最后借助matplotlib可视化价格波动情况。文章详细展示了从网页结构分析、数据采集到波动率计算和趋势可视化的完整流程,并建议通过定时任务实现持续数据更新。该项目能为二手市场交易者提供价格参考,帮助优化买卖决策。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3375

记录一次mysql存储表情包踩坑记

最近在做微信授权的时候,获取微信用户名的时候有些微信用户直接报错,有些微信是正常的,最后排查出原来是有的微信用户名有表情包,造成sql报错,在曾经我就知道mysql要存储表情包的时候创建数据库的时候字符编码要改为utf8mb4自己创建的数据库也是这个编码,查看数据表的编码也没问题,接着有是一阵的在网上搜索大佬们的经验分享。大致都是和我一样的,陷入深深在的思索中。 mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8

水痕 897

WQ7033开发指南(应用篇)之2.1 主函数详解(1)

整个系列文章查看: ​​​​​​WQ7033开发指南汇总 目录 1.函数模块位置 2.函数main_chip_init()解析 2.1 cal_data_ana_load() 2.2 函数iot_cache_restore_register()解析 3.函数iot_soc_chip_init()解析 3.1 soc芯片初始化的低功耗使能 3.2 分支预设功能使能 3.3 数据异常中止使能 3.4 外围低速总线访问路径使能 3.5 1.8V DCDC功能配置 3.6 ADC配..

心跳包的博客 802

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MySQL中emoji表情包的存储问题

现象 最近项目中存储emoji表情包的时候报错: ### Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81' for column 'column1' at row 1 ; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x98\x81' for column

tunan666的博客 1122

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

mysql存储表情包设置utf8mb4格式

执行后再把你连接数据库的charset格式修改为utf8mb4,要不然存进去的表情包就变成问号了。最新项目中要加评论表情包,那表情包在数据库怎么存储呢,执行以下命令就可以了。

zhangzhangdan的博客 1204

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

一个emoji表情包处理工具类

在常规如APP推送、BBS、论坛等类型的业务系统中,消息内容中包含emoji表情包(😁、💣、🦢)由于其本身的趣味性,在消息内容中引入的场景越来越普遍。

lp306b的博客 1094

MySQL 数据库插入表情包异常

MySQL 数据库插入表情包异常 1. 出现问题 2. 分析过程 3. 解决方案

专注如一的博客 768

php ios表情包,php 处理APP emoji表情包 IOS表情包 Mysql保存手机表情

使用场景:PHP作为服务器端接收APP的接口数据,由于Mysql 的格式问题导致没有办法直接保存表情包解决方案;将表情转换成base64可以见格式,由于抓换后长度过大,将其替换成对应字符保存如数据库class Emoji{/*** 将表情转成对应代表字符串* @param string $content*/public static function emojiEncode($content = ...

weixin_36363813的博客 161

scrapy爬取表情包使用flask搭建搜索网站

本文以doutula为演示站点,详细说明搭建一个自己的表情包搜索网站的过程。主要步骤如下: 1. scrapy爬取表情包并存入mysql 2. flask搭建搜索网站 准备工作,anaconda python3 pip install scrapy pip install flask pip install pymysql 1.scrapy爬取表情包并存入mysql 1.1打开网站审查元素 ...

春江暮客的博客 2215

关于mysql不能插入emoj表情包的问题

对于新的emoj表情包,先把数据库中这个字段的编码格式改下(utf8 -&gt; utf8mb4),因为emoj的表情包字节码长度超过了传统的utf8(3个字节);然后设置启动文件(一般是my.ini)的编码格式,最后重启mysql服务。1.更改编码格式2.更改配置文件3.重启MySql服务器...

wy489605211的博客 1543

spring boot mysql 存储表情的问题解决方案

最近做项目遇到了存表情包的问题,作一下记录(省略了部分具体的语句,适合有基础的人员阅读): utf8和utf8mb4 utf8不是utf-8,最多只支持3字节的字符,utf8mb4最多支持4个字节的字符,emoji表情是有四个字节的字符,所以存表情必须使用utf8mb4的字符集。mysql 小于mysql5.5.3的版本不支持utf8mb4,所以建议考虑别的存储方案或者升级mysql。大于5.5.3的字段编码必须设置成utf8mb4。 彻底解决方案需要将mysql本身的编码配置成utf8mb4,然后重启

qq_37721238的博客 1200

保存图片到MySQL&从MySQL读取图片

将图片存到mysql、从mysql读取图片

功不唐捐,玉汝于成 8765

Python 爬取表情包并保存在数据库中(以往的爬虫改进)

Python 爬取表情包并保存在数据库中(以往的爬虫改进) 使用的requests库爬取斗图网的最新表情包,爬取的过程就不细说了,原来的爬虫爬取的表情包是直接存放在硬盘上的,这一版改为存放在MySQL数据库中, ...

zsk_john的技术分享专用博客 1146

python从入门到入土表情包-Python开发个人专属表情包网站,表情在手,天下我有...

"表情包”是一种利用图片来表示感情的一种方式。表情包是在社交软件活跃之后,形成的一种流行文化,表情包流行于互联网上面,基本人人都会发表情。曾经你是否也有过找不到表情包去应对别人的时候。今天小编分享如何用Python开发个人专属的表情包网站,想用什么表情包搜一下就有了!本篇分为两部分1、爬取表情包存入数据库2、开发个人专属网站准备环境:Windows + Python 3.6IDE : 根...

weixin_37988176的博客 104
上一篇: 使用redis的坑
下一篇: 猿猿们一定要好好看原型图
AnswerForWang
博客等级 码龄9年 12粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值