MySQL 数据库支持存储emoji表情

news2024/9/20 0:53:58

当你通过node.js,往mysql存储emoji表情的时候,可能会遇到报错:

code: ‘ER_TRUNCATED_WRONG_VALUE_FOR_FIELD’,
errno: 1366,
sqlMessage: “Incorrect string value: ‘\xF0\x9F\x8D\x94’ for column ‘nick_name’ at row 1”,
sqlState: ‘HY000’,

在这里插入图片描述

报错解释:

这个报错通常发生在尝试将包含四字节UTF-8字符(通常表情符号)插入一个不支持这种字符的MySQL数据库表中。MySQL的utf8字符集只支持最多三个字节的UTF-8字符,而四字节字符需要utf8mb4字符集。

解决方法:

utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。

  1. 更改数据库配置文件(通常是my.cnf或my.ini),确保数据库默认字符集是utf8mb4

1.1. 进入 my.cnf 文件:

vim /etc/my.cnf

1.2. 文件内容:

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
  1. 重启MySQL服务
service mysql restart
  1. 修改 数据库、表、列 的字符集

3.1. 修改数据库字符集:‌首先,‌需要更新MySQL数据库的字符集。‌可以使用以下命令将数据库的字符集更改为utf8mb4:‌

ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这里的database_name应替换为你的数据库名称。‌

3.2. 修改表字符集:‌接下来,‌需要更新表的字符集。‌使用以下命令可以更新表的字符集:‌

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这里的table_name应替换为你要修改的表名。‌

3.3. 修改列字符集:‌如果需要,‌还可以进一步更新列的字符集:‌

ALTER TABLE table_name MODIFY column_name column_type CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这里的column_namecolumn_type(如:VARCHAR(150))应分别替换为你要修改的列名列的数据类型。‌

  1. 验证存储:‌完成上述步骤后,‌可以通过创建一个包含emoji表情的数据表并插入一条包含emoji表情的记录来验证MySQL数据库是否成功支持emoji表情存储:‌
CREATE TABLE emoji_table (
  id INT PRIMARY KEY AUTO_INCREMENT,
  emoji VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);

INSERT INTO emoji_table (emoji) VALUES ('🍔');

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

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

相关文章

大数据基础:Hadoop之MapReduce重点架构原理

文章目录 Hadoop之MapReduce重点架构原理 一、MapReduce概念 二、MapReduce 编程思想 2.1、Map阶段 2.2、Reduce阶段 三、MapReduce处理数据流程 四、MapReduce Shuffle 五、MapReduce注意点 六、MapReduce的三次排序 Hadoop之MapReduce重点架构原理 一、MapReduce概…

微积分-导数6(隐式导数)

隐式导数 前面我们学了如何求这些方程的导数: y x 3 1 or y x sin ⁡ x y \sqrt{x^31} \quad \text{or} \quad y x\sin x yx31 ​oryxsinx 但是如果是下面的方程,又该如何求导呢? x 3 y 3 6 x y x^3 y^3 6xy x3y36xy 这个方程的图…

【架构】分布式与微服务架构解析

分布式与微服务架构解析 一、分布式1、什么是分布式架构2、为什么需要分布式架构3、分布式架构有哪些优势?4、分布式架构有什么劣势?5、分布式架构有哪些关键技术?6、基于分布式架构如何提高其高性能?7、如何基于架构提高系统的稳…

企业资产管理系统带万字文档公司资产管理系统java项目java课程设计java毕业设计

文章目录 企业资产管理系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档(9.9¥带走) 企业资产管理系统 一、项目演示 企业资产管理系统 二、项目介绍 语言:java 数…

开始性能测试之前的准备工作!

性能测试是软件测试中不可或缺的一部分,它可以帮助我们评估软件系统的性能表现,并找出潜在的性能瓶颈。在进行性能测试之前,需要做好充分的准备工作,以确保测试的有效性和准确性。 1. 确定性能测试的目标和范围 * 明确测试目标:性…

Qt/QML学习-定位器

QML学习 定位器例程视频讲解代码 main.qml import QtQuick 2.15 import QtQuick.Window 2.15Window {width: 640height: 480visible: truetitle: qsTr("positioner")Rectangle {id: rectColumnwidth: parent.width / 2height: parent.height / 2border.width: 1Col…

【安全设备】数据库审计

一、什么是数据库审计 数据库审计(简称DBAudit)是一种以安全事件为中心,实时记录网络上的数据库活动,并对数据库操作进行细粒度审计的合规性管理技术。它通过对用户访问行为的记录、分析和汇报,帮助用户事后生成合规报…

记录一次微信小程序申诉定位权限过程

1 小程序接到通知,检测到违规,需要及时处理,给一周的缓冲时间,如果到期未处理,会封禁能力(2023-11-17) 2 到期后,仍未处理,封禁能力(2023-11-24) …

江波龙 128G msata量产

一小主机不断重启,用DG格式化 无法完成,应该是有坏块了 找一个usb转msata转换板 查了一下是2246en aa主控 颗粒应该是三星的 缓存是现代的 找到量产工具sm22XMPToolP0219B 打开量产工具 用镊子先短接一下jp1 插入usb口,再拿走镊子 scan …

宏任务与微任务对比【前端异步】

目录 简介微任务与宏任务的基本概念宏任务(Macrotasks)微任务(Microtasks)宏任务示例微任务示例微任务与宏任务的执行时序 结论 简介 在JavaScript的异步编程中,理解事件循环(Event Loop)是至关…

el-from中校验,如果某一项需要另一项填写才能校验

使用validateField <el-form:model"params":rules"rules":scroll-to-error"true"ref"refrom"v-else><el-form-item label"用户姓名" prop"name"><el-input placeholder"请输入用户姓名"…

【IT领域新生必看】编程中的错误处理大师:解密 `throw` 和 `throws` 的神秘差异

文章目录 引言异常处理的基础知识什么是异常&#xff1f;异常分类 什么是 throw&#xff1f;throw 的使用示例throw 的特性 什么是 throws&#xff1f;throws 的使用示例throws 的特性 throw 和 throws 的区别结合使用 throw 和 throws异常处理的最佳实践结论 引言 在编程的世…

一套基于 Ant Design 和 Blazor 的开源企业级组件库

前言 今天大姚给大家分享一套基于Ant Design和Blazor的开源&#xff08;MIT License&#xff09;、免费的企业级组件库&#xff08;喜欢Ant Design风格的同学推荐使用&#xff09;&#xff1a;Ant Design Blazor。 项目特性 提炼自企业级中后台产品的交互语言和视觉风格。 开…

Paints-UNDO

Paints-UNDO Ubuntu 20.04 安装 conda mkdir -p ~/miniconda3 cd ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 ~/miniconda3/bin/conda …

AI绘画Stable Diffusion超现实风格电商场景,五个电商专用LoRA分享,制作电商场景变现教程!

前言 本次教程将使用AI绘画工具 Stable Diffusion 进行讲解&#xff0c;如还未安装SD的小伙伴可以看我往期入门教程2024最新超强AI绘画Stable Diffusion整合包安装教程&#xff0c;一键教你本地部署&#xff01;&#xff0c;安装包请扫描免费获取哦https://blog.csdn.net/z199…

前端工程化(01):Webpack、Gulp、Grunt三大自动化构建工具对比

10年前端开发和UI设计老司机→贝格前端工场&#xff0c;为您分享。本期介绍三款自动化构建工具&#xff0c;看看他们的工作原理和差异化&#xff0c;帮助你来选择。 Webpack、Gulp和Grunt都是前端构建工具&#xff0c;用于优化前端开发流程和提高开发效率。它们都可以自动化执…

FastAPI 学习之路(三十四)数据库多表操作

之前我们分享的是基于单个表的数据库表的操作&#xff0c;我们在设计数据库的时候也设计了跨表&#xff0c;我们可以看下数据库的设计 class User(Base):__tablename__ "users"id Column(Integer, primary_keyTrue, indexTrue)email Column(String(10), uniqueTr…

大数据开发者如何快速熟悉新公司业务

作为一名大数据开发工程师,进入一家新公司后快速熟悉业务是至关重要的。 目录 1. 了解产品形态故事1:电商平台的数据分析故事2:金融科技的风控系统故事3:社交媒体的推荐算法 2. 了解业务流程故事1:物流配送系统的优化故事2:医疗保险的理赔流程故事3:银行的贷款审批流程 3. 走…

IDEA阿里云OSS实现文件上传·解决苍穹外卖图片回显

简单交代配置阿里云OSS的思路 1. 首先去阿里云开通一个OSS服务&#xff0c;配置好一个自己的Bucket 2. 在IDEA配置Bucket 3. 拷贝官网的OSS工具类代码 package com.sky.utils;import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSS…

3DSC(3D形状上下文特征)

形状上下文(shape context简写为SC)由Serge Belongie等人于2002年首次提出,是一种很流行的二维形状特征描述子,多用于目标识别和形状特征匹配。 2004年,Andrea Frome等人将形状上下文的工作从二维数据迁移到三维数据上提出了3D形状上下文(3DSC) 原理解析 2DSC的算法流程…