iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中不能使用UTF-8编码方式的原因
  • 273
分享到

MySQL中不能使用UTF-8编码方式的原因

2024-04-02 19:04:59 273人浏览 薄情痞子
摘要

下面一起来了解下Mysql中不能使用UTF-8编码方式的原因,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql中不能使用UTF-8编码方式的原因这篇短内容是你想要的。    &

下面一起来了解下Mysql中不能使用UTF-8编码方式的原因,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql中不能使用UTF-8编码方式的原因这篇短内容是你想要的。                                                          MySQL中不能使用UTF-8编码方式的原因

Mysql的UTF-8编码方式

MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,然而目前流行的UTF-8 标准(RFC 3629)是在此之后规定的。正因此,才造就了MySQL中的UTF-8与我们日常开发中的UTF-8不一致,从到导致了些问题。MySQL的UTF-8只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。

问题复现

数据库表如下:utf8编码方式

MySQL中不能使用UTF-8编码方式的原因

数据库存一条记录:

@Test public void testInsert() {     User user = new User();     user.setUsername("\uD83D\uDE00 ");     user.setPassword("123456");     userRepo.save(user); }

这里只是部分代码,看不懂没关系,这里是给user表插入一条记录。其中username是\uD83D\uDE00 。

其实\uD83D\uDE00是一个emoji表情。

MySQL中不能使用UTF-8编码方式的原因

因为MySQL中utf8字符集只支持三字节UTF-8编码的Unicode范围,而emoji字符属于四字节编码部分,所以程序运行预期是会报错的。运行这段代码:

MySQL中不能使用UTF-8编码方式的原因

与预期一致,报错了。

解决问题

虽然MySQL的UTF-8存在缺陷,但是MySQL(包括mariadb)官方却没有修复此bug,而是通过2010年重新发布的“utf8mb4”来支持真正的 UTF-8。因此想要解决此问题,只能够将MySQL数据库设置为utf8mb4字符集才行。

总结

这个问题,也是因为某次保存数据的时候保存了一个emoji表情才发现的。其实最早开始用MySQL的时候,就有发现一个utf8mb4了,但是自己却没有却去了解UTF8和UTF8MB4的区别。通过此次教训,以后使用MySQL就老老实实的设置字符集为utf8mb4吧。

看完MySQL中不能使用UTF-8编码方式的原因这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的数据库栏目。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中不能使用UTF-8编码方式的原因

本文链接: https://www.lsjlt.com/news/35917.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 为何不要在MySQL中使用UTF-8编码方式详解
    MySQL的UTF-8编码方式 MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,然而目前流行的UTF-8 标准(RFC 3629)是在此之后规定的。正因此,才造就了MySQL中的U...
    99+
    2024-04-02
  • MySQL中如何使用UTF-8编码
    这期内容当中小编将会给大家带来有关MySQL中如何使用UTF-8编码,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。那么什么是编码什么是UTF-8我们都知道,计算机使用0和...
    99+
    2024-04-02
  • 网页编码不用gbk或者gb2312而用utf-8的原因分析
    这篇文章给大家分享的是有关网页编码不用gbk或者gb2312而用utf-8的原因分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。能选择的话还是应该用UTF-8事实上Windows系统自己的程序已经全面转向Uni...
    99+
    2023-06-08
  • mysql设置默认编码为utf-8的方法
    小编给大家分享一下mysql设置默认编码为utf-8的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql设置默认编码为utf-8的方法:1、使用文本编辑器打开my.ini配置文件;2...
    99+
    2024-04-02
  • 为什么不建议在 MySQL 中使用 UTF-8?
    最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后出现了一个离奇的错误:Incorrect string value:&nb...
    99+
    2024-04-02
  • 为什么永远不要在MySQL中使用UTF-8
    这篇文章给大家介绍为什么永远不要在MySQL中使用UTF-8,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后...
    99+
    2023-06-19
  • 深入了解PHP中汉字转UTF-8编码的原理
    汉字转UTF-8编码的原理实际上涉及到字符编码的概念。在计算机中,文字字符需要以数字的形式进行表示和存储,而不同的字符编码方案规定了不同字符到数字之间的对应关系。UTF-8是一种常用的...
    99+
    2024-04-02
  • javascript字符串转换成utf-8编码的方式有哪些
    这篇文章主要讲解了“javascript字符串转换成utf-8编码的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript字符串转换成...
    99+
    2024-04-02
  • UTF-8编码在PHP中的应用及常见问题
    UTF-8编码在PHP中的应用及常见问题 在网络时代,我们经常会碰到各种不同语言和字符集的数据交互,而UTF-8编码则是一种通用的字符编码方式,能够很好地解决多语言字符的显示和传输问题...
    99+
    2024-04-02
  • PHP中将汉字转换成UTF-8编码的方法有哪些
    本文小编为大家详细介绍“PHP中将汉字转换成UTF-8编码的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP中将汉字转换成UTF-8编码的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。为...
    99+
    2023-07-05
  • Linux 下如何将使用各种字符编码的文件转化为UTF-8编码
    Linux 下如何将使用各种字符编码的文件转化为UTF-8编码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们将一起看一看如何在 Linux 下将使用...
    99+
    2023-06-05
  • Python批量将csv文件编码方式转换为UTF-8的实战记录
    当我们用pandas是操作CSV文件的时候,常常会因为编码问题出现报错。 pandas_libs\parsers.pyx in pandas._libs.parsers.TextRe...
    99+
    2024-04-02
  • 浅析PHP中将汉字转换成UTF-8编码的3种方法
    PHP是一种服务器端脚本语言,被广泛用于网站开发中。但是,在使用PHP处理中文数据时,有时需要将中文字符转换成UTF-8编码。本文将介绍PHP中汉字转换为UTF-8编码的方法。为何需要将汉字转换成UTF-8编码?在使用PHP处理中文数据时,...
    99+
    2023-05-14
    php
  • 网站建设中编码转码工具实现utf-8与gbk转换的方法
    这篇文章给大家介绍网站建设中编码转码工具实现utf-8与gbk转换的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。所以最好的方法是直接使用编码转换软件,我用的软件是convertz,貌似这个软件N年前开发出来后就没...
    99+
    2023-06-12
  • MySQL中不使用Text类型的原因是什么
    MySQL中不使用Text类型的原因是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。众所周知,MySQL广泛应用于互联网的OLTP(联机事...
    99+
    2024-04-02
  • MySQL中不建议使用SELECT *的原因是什么
    本篇内容介绍了“MySQL中不建议使用SELECT *的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!“不要使用...
    99+
    2023-06-29
  • 不能在PHP中使用泛型的原因是什么
    小编给大家分享一下不能在PHP中使用泛型的原因是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么我们不能在 PHP 中使用泛型我们将深入探讨泛型和 PHP...
    99+
    2023-06-29
  • java中的unicode编码方式怎么使用
    在Java中,可以使用\u后面跟着四个十六进制数字的方式表示Unicode编码的字符。例如,要表示字符'中'的Unicode编码为U...
    99+
    2023-09-25
    Java
  • 使用命令行设置MySql编码格式的方法
    这篇文章主要介绍使用命令行设置MySql编码格式的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用命令行设置MySql编码格式的方法:首先登录mysql,并输入【SHOW VA...
    99+
    2024-04-02
  • MySQL中使用游标的原因有哪些
    在MySQL中使用游标的原因有以下几点:1. 需要对结果集进行逐条处理:游标可以逐条读取结果集中的数据,这对于需要逐条处理结果集中的...
    99+
    2023-08-08
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作