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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 一、背景爬取数据过程中,会遇到一些特殊的字符入库出错的问题,比如二进制数据、比如特殊文字(类似QQ表情)等。Siberian Husky fighting这样的标题,后面就带有一个表情。

一、背景

爬取数据过程中,会遇到一些特殊的字符入库出错的问题,比如二进制数据、比如特殊文字(类似QQ表情)等。

Siberian Husky fighting
AI 代码解读

这样的标题,后面就带有一个表情。

在mysql存储的时候,报错信息如下:

[Failure instance: Traceback: <class 'pymysql.err.InternalError'>: (1366, "Incorrect string value: '\\xF0\\x9F\\x90\\xB6' for column 'title' at row 1")
AI 代码解读

大致意思是指title这个字段无法存储这种字符。

解决办法

经过网上搜索mysql 1366,多方查看后,终于找到了原因和解决的办法。

是因为\xF0\x9F\x90\xB6 它通常是4个字符存储,而mysql的utf8默认是3个字符存储。

1、 更改代码中数据库连接的字符编码charset为utf8mb4

MYSQL_CHARSET = 'utf8mb4'
AI 代码解读

2、将数据库字符集编码页改成utf8mb4。

3、检查数据表的字符编码,保持同步。

4、最后确认数据表中的字段,存储这种特殊文字的字段字符编码也是utf8mb4

输入图片说明

这样就解决了这个问题。

如果你没有小心处理好,可以尝试新建一个数据库,然后将默认的字符编码设置为utf8mb4.

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
3
分享
相关文章
Linux 安装 mysql 及配置存储位置
Linux 安装 mysql 及配置存储位置
222 3
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
312 0
MySQL进阶突击系列(09)数据磁盘存储模型 | 一行数据怎么存?
文中详细介绍了MySQL数据库中一行数据在磁盘上的存储机制,包括表空间、段、区、页和行的具体结构,以及如何设计和优化行数据存储以提高性能。
MySQL原理简介—5.存储模型和数据读写机制
本文介绍了MySQL中InnoDB存储引擎的物理存储结构和读写机制。主要内容包括: 1. 为什么不能直接更新磁盘上的数据 2. 数据页的概念 3. 一行数据的存储 4. 数据头的内容 5. 行溢出和溢出页 6. 数据页的物理结构 7. 表空间的物理结构 8. InnoDB存储模型及读写机制总结 这些机制共同确保了InnoDB在高并发场景下的高效运行和数据一致性。
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
144 2
MySQL 存储函数及调用
MySQL 存储函数及调用
357 3
MySQL 如何存储地理信息
MySQL 如何存储地理信息
578 1
深入解析MySQL数据存储机制:从表结构到物理存储
深入解析MySQL数据存储机制:从表结构到物理存储
823 1
Key_Value 形式 存储_5级省市城乡划分代码 (mysql 8.0 实例)
本文介绍了如何使用MySQL8.0数据库中的Key_Value形式存储全国统计用区划代码和城乡划分代码(5级),包括导入数据、通过数学函数提取省市区信息,以及查询5级行政区划的详细数据。
73 0