mysql如何存Emoji表情

如何存Emoji表情
  • 背景
  • 解决方案
  • 一: 如果是自己搭建的数据库,参考如下。
    • 1:先创建数据库,utf8编码
    • 2: 修改mysql 的配置文件 /etc/my.cnf 文件
    • 3:然后把你的表和字段也要支持utf8md4编码
    • 4:修改你连接数据库的方式
  • 二: 如果你用的阿里云的数据库
    • 1:创建utf8mb4数据库
    • 2: 最后你连接数据库的方式如下

背景

我的项目技术栈 flask + sqlalchemy + mysql
在这样的架构下,我想要mysql能存Emoji表情。

解决方案

如果想在数据库存emoji表情需要满足以下几种情况。
1: mysql 数据库要改成utf8md4编码格式,因为这样才能存emoji四个字符的表情。
2: 客户端也要改成utf8md4的编码格式,这里的客户端指的是后端工程师开发的服务器,只是相对于数据库来说是是客户端。其实就是在连接mysql的时候指定一下以什么编码连接mysql数据库。

一: 如果是自己搭建的数据库,参考如下。

1:先创建数据库,utf8编码

CREATE DATABASE  `database name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 
 
  • 1

2: 修改mysql 的配置文件 /etc/my.cnf 文件

[client] default-character-set = utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[mysql] default-character-set = utf8mb4

3:然后把你的表和字段也要支持utf8md4编码

4:修改你连接数据库的方式

SQLALCHEMY_DATABASE_URI = “mysql://账号:密码@ip:port/数据库名?charset=utf8mb4”

主要在连接后面加上这个编码

?charset=utf8mb4

二: 如果你用的阿里云的数据库

1:创建utf8mb4数据库

在这里插入图片描述
在这里插入图片描述

数据库里的表也要支持utf8md4 当我在阿里创建一个utf8mb4数据库,
然后ORM迁移后就已经数据库里的表就已经是utf8mb4编码了。

2: 最后你连接数据库的方式如下

SQLALCHEMY_DATABASE_URI = “mysql://账号:密码@ip:port/数据库名?charset=utf8mb4”

主要在连接后面加上这个编码

?charset=utf8mb4

参考

https://www.jianshu.com/p/57d544acdc1f

参考阿里的描述

概述 本文主要介绍RDS MySQL如何使用utf8mb4字符集存储emoji表情。

详细信息 阿里云提醒您:

如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

基本原则 如果要实现存储emoji表情到RDS
MySQL实例,需要客户端、到RDS实例的会话连接、RDS实例三个方面统一使用utf8mb4字符集。

客户端:客户端需要保证输出字符串的字符集为utf8mb4。
到RDS实例的会话连接:支持utf8mb4字符集。以常见的JDBC连接为例,需要使用MySQL Connector/J
5.1.13及以上的版本,JDBC的连接串中,建议不配置characterEncoding选项。 RDS实例:在RDS控制台将character_set_server参数设置为utf8mb4,且数据库和表的字符集也要设置为utf8mb4。

修改字符集 如果字符集不符合以上基本原则,请参见RDS MySQL字符集相关说明修改字符集。

说明:由utf8修改为utf8mb4字符集不会影响之后的数据质量,且已经存在的数据也不受影响,但是数据存储空间会有所增加。

适用于云数据库RDS MySQL版

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分页功能制作

使用HTML,css,js和json假数据制作分页功能。 以下为分页功能结构,下面可以点击上一页,下一页及数字,还可以自己输入想要跳转的页面点击跳转。下面每页显示的内容也会跟着改变。还可以选择不同的每页显示数据的条数。默…

备考ICA----Istio实验11---为多个主机配置TLS Istio Ingress Gateway实验

备考ICA----Istio实验11—为多个主机配置TLS Istio Ingress Gateway实验 1. 部署应用 kubectl apply -f istio/samples/helloworld/helloworld.yaml -l servicehelloworld kubectl apply -f istio/samples/helloworld/helloworld.yaml -l versionv12. 证书准备 接上一个实验…

【孙子级介绍语言模型的原理,实战和评估】

🔥博主:程序员不想YY啊🔥 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家💫 🤗点赞🎈收藏⭐再看💫养成习惯 🌈希望本文对您有所裨益,如有…

超级爆火项目 壁纸取图小程序源码系统 带完整的安装代码包以及安装部署教程

在当今数字化时代,手机壁纸已经成为人们展示个性和品味的重要载体。为了满足广大用户对精美壁纸的需求,小编给大家分享一款超级爆火的“壁纸取图小程序源码系统”。该系统不仅提供了完整的安装代码包,还附带了详尽的安装部署教程,…

2024大广赛设计趋势揭秘:助你称霸比赛!

2024大广赛火热进行中,今天就与大家分享几个当下最流行的设计趋势,希望这些流行的设计趋势助你一举夺魁,他们是适老化设计、电商类设计、车机主题设计与游戏类主题设计,大赛当前,不看说不过去哦~ 适老化设计 适老化设…

【LINUX笔记】汇编-裸机开发

裸机开发 chmod 777 imxdownload //给予 imxdownload 可执行权限,一次即可 ./imxdownload backlight.bin /dev/sdd //烧写到 SD 卡中, 不能烧写到/dev/sda 或 sda1 里面!汇编笔记 启动方式

如何利用生成式人工智能挑选合适的候选人?

在当今激烈的商业竞争中,招聘合适的人才是构建企业成功的基石。筛选和面试候选人是一个复杂且精细的过程,它不仅关系到职位的有效填补,更影响到企业的长期发展和团队建设。 选择合适候选人的重要性 选择合适的候选人就像寻找一片沙滩上的珍…

俄罗斯市场免费开发方法及工具分享

俄罗斯市场大家最近很多人都在开发,尤其是去年的时候,非常的火爆,今年因为俄罗斯被追加了新一轮的制裁,可能收款方面有点问题,但是市场还是非常火热的,今天给大家分享一些俄罗斯市场免费开发方法以及工具。…

ELF 1技术贴|应用层更改引脚复用的方法

在嵌入式系统设计中,引脚复用功能通常是通过设备树(Device Tree)预先配置设定的。出厂的设备树中UART2_TX_DATA和UART2_RX_DATA两个引脚被复用成了UART2功能,如果想要在不更换系统镜像的情况下,将这两个引脚的功能转换为GPIO,并作…

Java项目:76 Springboot学生读书笔记共享

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本文从管理员、用户的功能要求出发, 读书笔记共享平台系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、笔记分享…

C语言调用云端 Python接口

利用C语言调用阿里云Python接口,来实现垃圾的智能识别 文章目录 利用C语言调用阿里云Python接口,来实现垃圾的智能识别1、如何开启阿里云服务2、实验程序介绍2.1 py程序改造2.2 c语言调用py2.3 测试代码 3、实验结果 1、如何开启阿里云服务 大家可以自行…

【C++】从C到C++、从面向过程到面向对象(类与对象)

文章目录 C入门知识C与C的关系1. 类的引入:从结构体到类2. 类的声明和定义3. 类的作用域4. 类的访问限定符5. 面向对象特性之一:封装6. 类的实例化:对象7. 计算类对象的内存大小8. 成员函数中暗藏的this指针9. 类的六个默认生成的成员函数9.1…

NVIDIA 发布 Project GR00T 人形机器人基础模型和 Isaac 机器人平台重大更新

系列文章目录 前言 Isaac 机器人平台现可为开发者提供全新的机器人训练仿真器、Jetson Thor 机器人计算机、生成式 AI 基础模型和由 CUDA 加速的感知和操作库。 Project GR00T 是一种多模态人形机器人通用基础模型,作为机器人的大脑,使它们能够学习技能…

【Redis安装】Ubuntu下Redis编译安装

Redis编译安装 文档说明 本文作者:SwBack 创作时间:2024/3/26 17:19:19 知乎:https://www.zhihu.com/people/back-88-87 CSDN:https://blog.csdn.net/qq_30817059 百度搜索: SwBack系统: Ubuntu redis: 2.8.17 下载redis源代码,并进行解压 wget http://download.redis.io/re…

百人一岗,Android开发者的困境。。。。。

前言 在当前的Android开发领域,竞争的激烈程度已经达到了前所未有的水平,几乎到了100个开发者竞争1个岗位的地步。 这种“内卷”现象的背后,是技术的快速发展和市场对Android开发者技能要求的不断提升。随着移动应用的普及和多样化&#xf…

SV-7041VP SIP塑料壳sip音箱支持POE供电(白色弧形)

SV-7041VP SIP塑料壳sip音箱支持POE供电 (白色弧形) 一、描述18123651365微信 SV-7041VP是深圳锐科达电子有限公司的一款壁挂式SIP网络有源音箱,具有10/100M以太网接口,可将网络音源通过自带的功放和喇叭输出播放,可…

day11-数据统计(图形报表)

1. Apache ECharts 1.1 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。 官网地址:https://echarts.apache.org/zh/index.html 常见效果展示&a…

如何本地部署开源AI知识库 FastGPT(新手教程)

环境: Win10 WSL2 ubuntu22.04 问题描述: 如何本地部署开源AI知识库 FastGPT 解决方案: 一、安装docker和docker-compose 安装docker 1.apt install docker.io2.apt install docker-compose3.docker --version4.docker compose version

基于nodejs+vue学生信息管理系统python-flask-django-php

本论文对学生信息管理系统的需求分析、功能设计、系统设计进行了详细的阐述,并对系统的总体设计进行了阐述,并对各功能的实现和主要功能进行了说明,并附上了相应的操作界面图。 前端技术:nodejsvueelementui, Express 框架于Node运…

2.9 Python缩进规则(包含快捷键)

Python缩进规则(包含快捷键) 和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python采用代码缩进和冒号( : )来区分代码块之间的层次。 在 Python 中,对于类…