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

字符集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 utf8mb4_unicode_ci 与 utf8mb4_general_ci

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

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

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

    设置mysql5.7编码集为utf8mb4的方法

    移动端的表情或者一些emoji是4字节的,但是utf-8是3字节的,这篇文章主要介绍了设置mysql5.7编码集为utf8mb4的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    mysql存储emoji表情步骤详解

    在MySQL 5.6中,可以设置编码为utf8mb4,这个字符集是utf8的超集。 1、修改MYSQL字符集 Mysql设置字符编码集为utf8mb4,对应的库、表、字段设置为utf8mb4,注意如果是已经存在的表utf8编码集修改为utf8

    emoji表情符号mysql插入与读取

    emoji表情符号存放数据库需要数据库支持4个字节的数据格式,而mysql默认的utf8只能存储3个字节,所以需要mysql版本5.6及以上,并设置数据库为utf8mb4字符集

    MySQL插入emoji表情失败问题的解决方法

    但3个字节远远不够容纳所有的文字, 所以便有了utf8mb4, utf8mb4是utf8的超集, 占4个字节, 向下兼容utf8. 我们日常用的emoji表情就是4个字节了. 所以在此我们像utf8的数据表插入数据就会报出Incorrect st

    mysql中插入emoji表情失败的原因与解决

    但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。 下面话不多说了,来一起看看详细的介绍吧 解决方案 一. 修改database、table、column字符集 修改database字符集 ALTE

    MySQL无法存储emoji表情解决方案分析

    本文实例讲述了MySQL无法存储emoji表情解决方案。分享给大家供大家参考,具体如下: 今天学习爬虫爬伯乐在线的文章,由于在文章中有emoji表情,导致有emoji表情的文章都爬取不下来 经过一番搜索之后终于解决了问题。...

    Emoji在Web端显示

    emoji在移动端输入,移动端显示正常;但是在Web端确出现了乱码,如过你用的是...把utf8改为uft8mb4网页就可以直接显示;如果是其他数据库,则需要用到我提供的emoji包,请根据需要进行下载,如有疑问请给我留言,谢谢。

    3种方法轻松处理php开发中emoji表情的问题

    背景 做微信开发的时候就会发现,存储微信昵称必不可少。...如果你的mysql版本>=5.5.3,你大可直接将utf8直接升级为utf8mb4字符集 这种4字节的utf8编码可完美兼容旧的3字节utf8字符集,并且可以直接存储emoj

    基于SpringBoot+Vue实现的宠物医院诊所管理系统+微信小程序,含mysql数据库+开发笔记

    字符集为utf8 -- UTF-8 Unicode(为了节省空间,我不打算为了emoji而使用utf8mb4) 排序规则为utf8_general_ci(意为:不区分大小写,这样比较快) 接着在pet_forge数据库下,运行本项目中数据库备份文件夹下的pet_forge...

    毕设新项目-基于Java开发的宠物医院管理系统源码+项目使用说明+sql数据库+开发笔记.zip

    * 字符集为`utf8 -- UTF-8 Unicode`(为了节省空间,我不打算为了emoji而使用utf8mb4) * 排序规则为`utf8_general_ci`(意为:不区分大小写,这样比较快) * 接着在`pet_ship`数据库下,运行本项目中`数据库备份`...

    anlin-chat_1.0.zip

    安装已默认字符集为 utf8mb4(emoji),如需utf8请修改根目录sql.php文件(将utf8mb4全部替换成utf8) 支持邀请码/邮件/等注册方式 自定义模板与ubb创建个性化页面 会员管理,帖子管理,虚拟在线会员设置,马甲账号设置/...

    Anlin-chat多功能聊天室PHP源码

    装置已默许字符集为 utf8mb4(emoji),如需utf8请修正根目录sql.php文件(将utf8mb4全部交换成utf8) 支持约请码/邮件/等注册方式 自定义模板与ubb创立个性化页面 会员管理,帖子管理,虚拟在线会员设置,马甲账号设置/...

    利用rpm安装mysql 5.6版本详解

    其实之前使用yum安装MySQL确实很方便,但是默认安装的myql5.0版本的,不支持utf8mb4(utf8mb4扩展到一个字符最多能有4节,所以能支持更多的字符集,比如支持emoji表情)编码格式,所以要升级数据库,yum库升级貌似...

    Java开发一款灵活且易扩展的网站内容管理系统.zip

    如使用MySQL,字符集选择为utf8或者utf8mb4(支持更多特殊字符如表情字符emoji,推荐)。 执行数据库脚本。数据库脚本在database目录下。 在eclipse中导入maven项目。点击eclipse菜单File - Import,选择Maven - ...

    rumojinize::dog_face:ActiveRecord插件可让您轻松将表情符号存储到数据库

    将字符集从utf8更改为utf8mb4 。 将MySQL版本升级到5.5 。 但是“ Rumojinize”使它变得简单! 用法 安装gem: gem 'rumojinize' bundle install 由rumojinize 。 class Article < ApplicationR

    Anlin-chat多功能聊天室-PHP

    utf8mb4(emoji),如需utf8请修改根目录sql.php文件(将utf8mb4全部替换成utf8) 支持邀请码/邮件/等注册方式 自定义模板与ubb创建个性化页面会员管理,帖子管理,虚拟在线会员设置,马甲账号设置/马甲账号群发功能...

    mysql/Java服务端对emoji的支持与问题解决方法详解

    本文实例讲述了mysql Java服务端对emoji的支持与问题解决方法。分享给大家供大家参考,具体如下: ... MYSQL 5.5 之前, utf8 编码只支持1~3个字节,即BMP这部分的unicode编码区(基本就是0000~FFFF这一区)。

Global site tag (gtag.js) - Google Analytics