【MySQL系列】字符集设置

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 一.基本信息
      • 1.问题背景
      • 2.原因分析
      • 3.连接设置
    • 二.设置方式
      • 1.默认设置,支持表情,不区分大小写
      • 2.区分大小写且不支持表情
      • 3.支持表情且区分大小写

一.基本信息

1.问题背景

(pymysql.err.DataError) (1366, ‘Incorrect string value: ‘\xF0\x9F\x98\x9D",…’ for column ‘html’ at row 1’)”

字段不支持表情

2.原因分析

报错 1366,主要是处理 emoji 时,编码问题造成的,在 mysql8 里面,字符集默认就是 utf8mb4,已经支持 emoji,连接 mysql 的时候使用的是 utf8,utf8mb4 时 utf8 的超集,mb4 是 most bytes 4 的意思,专门用来兼容四字节的 unicode,处理 emoji 时需要字符集支持 unicode,utf8mb4 是没问题的,但是 uft8 不可以。
在这里插入图片描述

3.连接设置

在连接时设置charset=utf8mb4

mysql+pymysql://root:123456@localhost:3306/test?charset=utf8mb4

二.设置方式

1.默认设置,支持表情,不区分大小写

ALTER DATABASE test_cloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 查询出的ALTER TABLE语句全部需要执行
SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test_cloud';-- 查询出的ALTER TABLE语句全部需要执行
SELECTCONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE,' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') AS alter_statement
FROMINFORMATION_SCHEMA.COLUMNS
WHERETABLE_SCHEMA = 'test_cloud' AND(DATA_TYPE = 'varchar' OR DATA_TYPE = 'text' OR DATA_TYPE = 'char' OR DATA_TYPE = 'tinytext' OR DATA_TYPE = 'mediumtext' OR DATA_TYPE = 'longtext');

2.区分大小写且不支持表情

-- 需要执行查询出来的语句
ALTER DATABASE test_cloud CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;-- 需要执行查询出来的语句
SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test_cloud';-- 需要执行查询出来的语句
SELECTCONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE,' CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;') AS alter_statement
FROMINFORMATION_SCHEMA.COLUMNS
WHERETABLE_SCHEMA = 'test_cloud' AND(DATA_TYPE = 'varchar' OR DATA_TYPE = 'text' OR DATA_TYPE = 'char' OR DATA_TYPE = 'tinytext' OR DATA_TYPE = 'mediumtext' OR DATA_TYPE = 'longtext');

在这里插入图片描述

3.支持表情且区分大小写

-- 需要执行查询出来的语句
ALTER DATABASE test_cloud CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs;-- 需要执行查询出来的语句
SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test_cloud';-- 需要执行查询出来的语句
SELECTCONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE,' CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs;') AS alter_statement
FROMINFORMATION_SCHEMA.COLUMNS
WHERETABLE_SCHEMA = 'test_cloud' AND(DATA_TYPE = 'varchar' OR DATA_TYPE = 'text' OR DATA_TYPE = 'char' OR DATA_TYPE = 'tinytext' OR DATA_TYPE = 'mediumtext' OR DATA_TYPE = 'longtext');

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

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

相关文章

02- 模块化编程-001 ADC采样与显示

周末把单片机的开发环境理顺了,开始模块化编程的实践,先从外围模块开始,先从独立的模块,然后构建复杂一些的综合应用,条件所限,以protues的仿真为主。 1、单片机内置ADC采样与显示电路 2、电路原理简介 该电路主要由…

VScode设置系统界面字体

现象: 系统界面字体太大,导致菜单栏字体显示不全,每次使用都要先点然后才能打开终端和帮助 缩小字体应该就可以实现全部都看到的效果 解决步骤 1. “齿轮形状”设置中心---->设置 2.输入zoom 3.用户—>窗口—>修改“Window: Zoom…

C++初阶——类和对象(上)

目录 1、类的定义 1.1 类定义格式 1.2 访问限定符 1.3 类域 2、类的实例化 2.1 实例化的概念 3、this指针 1、类的定义 1.1 类定义格式 • class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。…

小北的字节跳动青训营与LangChain系统安装和快速入门学习(持续更新中~~~)

前言 最近,字节跳动的青训营再次扬帆起航,作为第二次参与其中的小北,深感荣幸能借此机会为那些尚未了解青训营的友友们带来一些详细介绍。青训营不仅是一个技术学习与成长的摇篮,更是一个连接未来与梦想的桥梁~ 小北的青训营 X M…

卷积神经网络实验三:模型优化(1)

作者有话说: 这篇文章写的还是比混乱的。因为本人也是第一次做这样的尝试,虽然接触深度学习有一年了,但是对于模型的优化仅仅是局限于理论上。通过这一次的实验,我对于模型的理解也更深了几分。我不期望这篇文章能帮你能解决多大问…

信息安全数学基础(42)分式域

一、定义 设R是一个整环,如果有一个域F使得从R到F有一个单的环同态,并且F中的每一个元素都可以表示成σ(a)σ(b)^(-1)的形式,其中a∈R,b∈R*(R的非零元构成的乘法群),那么把F称为R的分式域。 二…

HTML 基础概念:什么是 HTML ? HTML 的构成 与 HTML 基本文档结构

文章目录 什么是 HTML ?HTML 的构成 ?什么是 HTML 元素?HTML 元素的组成部分HTML 元素的特点 HTML 基本文档结构如何打开新建的 HTML 文件代码查看 什么是 HTML ? HTML(超文本标记语言,HyperText Markup L…

文本列的性能优化?深入Oracle全文索引

一.什么是全文索引? 全文索引通过分析和处理文本,将文档中的单词分解为词条(tokens),然后存储词条与其所在文档的映射关系。这使得数据库可以快速定位包含特定关键字的记录,而不必对所有文本逐字匹配。 二…

CentOS7配置静态IP(非解决方法指导,纯笨蛋记录)

一、这篇博客算是记录我终于解决我安装的虚拟机ping不通外网的问题,前前后后我尝试了很多次花了很多时间,最后弄完发现其实都是因为我之前根本不知道什么是虚拟机的网络配置。。。。。 这个链接介绍了vmware虚拟机三种网络模式及配置详解_vmware 特定虚…

数据丢失不用愁!10款必备的数据恢复软件全介绍

现在我们使用微信的频率愈发高涨,不论是生活、工作,甚至是兴趣还好可能都能在这个软件里看到身影。正因为它涉及了我们的生活如果因为病毒或者其他原因导致聊天记录清空,对很多人来说都很麻烦。那么微信聊天记录删了怎样才能恢复呢&#xff0…

国内版Sketchfab平台 - CG美术之家(3D编辑发布篇)

CG美术之家为您提供了一个简便的模型上传流程,让发布您的3D模型变得轻而易举。只需准备好通用的3D模型格式,如OBJ、FBX或STL,您就可以轻松上传并分享您的创作。我们的平台支持在线3D渲染,您只需花费不到一分钟的时间,就…

安防被动红外和主动红外

被动红外探测器是依靠被动的吸收热能动物活动时身体散发出的红外热能进行报警的,也称热释红外探头,其探测器本身是不会发射红外线的。 被动红外探测器中有2个关键性元件,一个是菲涅尔透镜,另一个是热释电传感器。**自然界中任何高…

使用Flask构建RESTful API

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Flask构建RESTful API Flask简介 环境搭建 安装Flask 项目结构 创建应用 路由定义 请求处理 获取查询参数 获取请求体 响应…

知识竞赛活动选手台桌怎么摆放好

知识竞赛活动选手台桌摆放主要根据选手台桌、舞台及和竞赛规则决定,一般有以下几种方案。 一、一字摆放 如果舞台宽度不够,就一字摆放。这样选手就无法看到大屏,选手就要配置看题平板或电脑。也可以在选手前面放置一台大电视。如图&#xf…

SQL之排名窗口函数RANK()、ROW_NUMBER()、DENSE_RANK() 和 NTILE() 的区别(SQL 和 Hive SQL 都支持)

现有一张student 表,表中包含id、uname、age、score 四个字段,如下所示: 该表的数据如下所示: 一、ROW_NUMBER() 1、概念 ROW_NUMBER() 为结果集中的每一行分配一个唯一的连续整数,编号从 1 开始。‌ 该函数按照指…

NeurIPS - Ariel Data Challenge 2024

1比赛概述 Ariel数据挑战2024 邀请参赛者开发机器学习模型,解决天文学领域中的一项重大挑战——从即将到来的欧洲航天局(ESA)Ariel任务的模拟观测中提取微弱的系外行星信号。Ariel任务计划于2029年启动,旨在对银河系邻近的约1,00…

Javaweb 实验4 xml

我发现了有些人喜欢静静看博客不聊天呐, 但是ta会点赞。 这样的人呢帅气低调有内涵, 美丽大方很优雅。 说的就是你, 不用再怀疑哦 实验四 XML 目的: 安装和使用XML的开发环境认识XML的不同类型掌握XML文档的基本语法了解D…

CRON组件一个复杂的一个简单的

CRON组件一个复杂的一个简单的 一个是复杂点的一个是简单点。 1.以简单的为例使用&#xff1a; 父组件 import CronSimple from "/views/xxx/components/cron-simple/index.vue";components: {CronSimple}<el-dialog title"调度CRON"v-if"cronV…

乒乓球烧拍日记之三蝴蝶蓝芳碳

朋友给了我个蝴蝶成品拍&#xff0c;要更换胶皮&#xff0c;底板是蓝芳碳磕碰很严重&#xff0c;木材都没了&#xff0c;没法补。淋巴面材&#xff0c;成品拍胶水很牢固非常难去除 把蓝芳碳纤维去除下毛边&#xff0c;然后用乳胶胶水填补缺失部分。(https://img-blog.csdnimg.…

高德地图如何标注店铺名称和位置信息?

在当今数字化和信息化的市场环境中&#xff0c;商家不仅需要提供优质的商品和服务&#xff0c;还需要通过多种方式来提升店铺的线上可见度和顾客体验。其中&#xff0c;在地图上准确标注店铺名称和位置信息已成为商家不可忽视的重要环节。而高德地图作为国内领先的导航和位置服…