`
bugyun
  • 浏览: 556930 次
社区版块
存档分类
最新评论

字符集UTF-8MB4 MySQL utf8mb4 字符集,用于存储emoji表情【转】

 
阅读更多

转自:https://www.cnblogs.com/guoziyi/p/6054112.html

 

String url = "jdbc:mysql://HOST:PORT/DATABASE?useUnicode=true&characterEncoding=utf8mb4";

 

字符集UTF-8MB4

utf8mb4兼容utf8,且比utf8能表示更多的字符。
看unicode编码区
从1 ~ 126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些字符,你才用utf8mb4,否则只是浪费空间。

 

官方地址:http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html

 

MySQL 要存储emoji表情,因此发现我们常用的utf8 字符集根本无法存储表情。

 

首先将我们数据库默认字符集由utf8 更改为utf8mb4,对应的表默认字符集也更改为utf8mb4  已经存储表情的字段默认字符集也做了相应的调整。

SQL 语句

1 # 修改数据库:  
2 ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;  
3 # 修改表:  
4 ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
5 # 修改表字段:  
6 ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  

 

修改MySQL配置文件

新增如下参数:

复制代码
 1 [client]  
 2 default-character-set = utf8mb4  
 3   
 4 [mysql]  
 5 default-character-set = utf8mb4  
 6   
 7 [mysqld]  
 8 character-set-client-handshake = FALSE  
 9 character-set-server = utf8mb4  
10 collation-server = utf8mb4_unicode_ci  
11 init_connect='SET NAMES utf8mb4'  
复制代码

 

检查环境变量 和测试 SQL 如下:

复制代码
 1 mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';  
 2 +--------------------------+--------------------+  
 3 | Variable_name            | Value              |  
 4 +--------------------------+--------------------+  
 5 | character_set_client    | utf8mb4            |  
 6 | character_set_connection | utf8mb4            |  
 7 | character_set_database  | utf8mb4            |  
 8 | character_set_filesystem | binary            |  
 9 | character_set_results    | utf8mb4            |  
10 | character_set_server    | utf8mb4            |  
11 | character_set_system    | utf8              |  
12 | collation_connection    | utf8mb4_unicode_ci |  
13 | collation_database      | utf8mb4_unicode_ci |  
14 | collation_server        | utf8mb4_unicode_ci |  
15 +--------------------------+--------------------+  
16  rows in set (0.00 sec)  
复制代码

MySQL版本必须为5.5.3以上版本,否则不支持字符集utf8mb4

 

测试,如下修改亦可

 

 

项目中的配置文件如下修改

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://***.***.***.***:3306/fsmp?useSSL=false
jdbc.username=***
jdbc.password=***

 数据库连接池配置

 

分享到:
评论

相关推荐

    全面了解mysql中utf8和utf8mb4的区别

    MySQL中的UTF8与UTF8MB4是两种不同的字符编码方式,它们主要的区别在于对Unicode字符集的支持程度。本文将深入探讨这两种编码的区别,以便更好地理解它们在实际应用中的选择。 一、UTF8与UTF8MB4简介 UTF8是...

    MySQL保存emoji表情

    因此,在设计与无线互联网相关的MySQL数据库时,推荐采用UTF-8mb4字符集来确保能够妥善处理emoji表情符号,避免出现数据存储或显示上的问题。 #### 限制 使用UTF-8mb4字符集的前提条件包括: - MySQL服务器版本需...

    emoji入库mysql注意事项除了更改utf8mb4最大的坑在这里

    - **更改字段字符集**:如果已有表中的某个字段需要存储emoji表情,可以通过ALTER TABLE命令修改字段的字符集为`utf8mb4`。例如: ```sql ALTER TABLE `article` MODIFY COLUMN `content` MEDIUMTEXT CHARACTER ...

    详解JDBC对Mysql utf8mb4字符集的处理

    解决这个问题的关键是使用正确的字符集,Mysql提供了utf8mb4字符集来支持存储emoji表情。 首先,我们需要在JDBC连接URL中指定字符编码为utf8mb4。例如: jdbc.url=jdbc:mysql://HOST:3306/your_database?useUnicode...

    MySQL字符集utf8修改为utf8mb4的方法步骤

    如果你的数据库需要存储如 Emoji 这样的4字节字符,就必须将字符集从`utf8`升级到`utf8mb4`。`utf8mb4`是`utf8`的超集,意味着所有有效的`utf8`字符在`utf8mb4`中也是合法的,但反之不成立。 转换过程涉及多个步骤...

    为何不要在MySQL中使用UTF-8编码方式详解

    3. 对于已经使用utf8字符集的数据库,如果需要兼容旧数据并且添加新的四字节字符存储需求,可以考虑使用MySQL的升级向导将数据库、表和列的字符集升级为utf8mb4。 4. 编写代码时,应考虑到MySQL数据库字符集的差异...

    mysql数据库支持emoji表情实例

    2. **字符集设置**:为了正确存储和检索emoji,你需要确保MySQL数据库的字符集设置为`utf8mb4`。`utf8mb4`是UTF-8的一个超集,它支持四字节的Unicode字符,而普通的`utf8`仅支持三字节的字符,不足以涵盖所有的emoji...

    MySQL 编码utf8 与 utf8mb4 utf8mb4_unicode_ci 与 utf8mb4_general_ci

    utf8mb4 已成为 MySQL 8.0 的默认字符集,在MySQL 8.0.1及更高版本中将 utf8mb4_0900_ai_ci 作为默认排序规则。 新项目只考虑 utf8mb4 UTF-8 编码是一种变长的编码机制,可以用1~4个字节存储字符。 因为历史遗留问题...

    php 处理APP emoji表情包 IOS表情包 Mysql保存手机表情

    - 数据库字符集设置:确保MySQL数据库、表以及字段的字符集设定为`utf8mb4`,因为`utf8`只支持部分Unicode,而`utf8mb4`则支持所有Unicode字符,包括emoji。 - PHP连接设置:在连接MySQL时,使用`mysqli_set_...

    emoji表情符号mysql插入与读取

    总之,要成功地在MySQL中存储和读取emoji表情符号,关键在于使用`utf8mb4`字符集,并确保整个数据链路的兼容性。通过遵循上述步骤,你可以有效地处理这些丰富多彩的表情符号,为用户提供更加生动的交互体验。

    mysql保存微信昵称特殊字符的方法

    MySQL从5.5.3版本开始引入了`utf8mb4`字符集,它是`utf8`的一个超集,专门用于支持4字节的Unicode字符。`mb4`代表“most bytes 4”,意味着它能够存储所有UTF-8编码的字符。因此,解决这个问题的关键就是将数据库、...

    Laravel开发-laravel-emoji

    1. **数据库支持**:并非所有的数据库系统都原生支持Unicode字符集,如MySQL需要设置`utf8mb4`字符集来确保能正确存储emoji。在Laravel的`.env`配置文件中,你需要将`DB_CHARSET`设置为`utf8mb4`,并确保`DB_...

    更改MySQL数据库的编码为utf8mb4_wo.pdf

    为了解决这个问题,MySQL 推出了 utf8mb4 编码,它是 MySQL 平台上 utf8 编码的超集,兼容 utf8,并且能存储 4 字节的表情字符。 采用 utf8mb4 编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与...

    MySQL数据库字符集的问题研究.pdf

    4. **升级MySQL版本**:部分早期版本可能存在已知的字符集兼容性问题,升级至最新版本可以解决这些问题。 #### 七、结论 在使用MySQL数据库时,正确理解和配置字符集至关重要。通过合理选择字符集和调整相关配置,...

    mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】

    为了解决这个问题,需要将MySQL数据库的字符集更改为utf8mb4,这是MySQL对UTF-8字符集的扩展,能够支持最多4字节的字符,完全兼容Emoji表情的存储。不过,在进行编码更改之前,必须确认MySQL的版本至少为5.5.3,因为...

    使MySQL能够存储emoji表情字符的设置教程

    MySQL 需要支持 emoji 表情符号版本需要大于5.5.3,且字符集需要设置为utf8mb4 字符集。 utf8mb4和utf8到底有什么区别呢?原来以往的mysql的utf8一个字符最多3字节,而utf8mb4则扩展到一个字符最多能有4字节,所以...

    MySQL无法存储Emoji表情问题的解决方法分析

    因此,要解决MySQL无法存储Emoji表情的问题,需要将数据库、表以及字段的字符集都调整为utf8mb4。 首先,需要修改MySQL配置文件my.ini,在[mysql]和[mysqld]部分设置正确的字符集。具体操作如下: 1. 找到MySQL...

    MySql乱码问题解决方法

    - **emoji表情乱码**:若涉及emoji等四字节字符,务必使用`utf8mb4`,因为`utf8`仅支持三字节字符。 - **连接问题**:某些老版本的MySQL驱动可能不支持`utf8mb4`,需升级至最新版。 4. **预防措施** - **统一...

    java web处理 emoji demo

    如果你需要将包含Emoji的数据存储到数据库,确保数据库和表的字符集设置为支持Unicode的,例如`utf8mb4`,这是MySQL中支持全Unicode字符(包括Emoji)的编码。同样,连接数据库时,也要指定合适的字符集。 3. **...

Global site tag (gtag.js) - Google Analytics