`

Java Mysql Emoji

 
阅读更多

前提

utf8mb4 的最低 Mysql 版本支持版本为 5.5.3+,若不是,请升级到较新版本。

如果你用的是 java 服务器,升级或确保你的 mysql connector 版本高于 5.1.13,否则仍然无法使用 utf8mb4。

准备:查看当前版本及字符集

查看当前版本,Linux 命令:

# mysql -V

登录 Mysql 进入命令行模式:

# mysql -uroot -p你的密码

查看当前 Mysql 字符集设置:

msql> SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

步骤一:改 Mysql 配置文件 my.cnf

Windows 下配置文件是安装目录下的 my.ini。

Linux 下 Mysql 配置文件一般在:/etc/my.cnf。

Linux 下 Mysql 配置文件一般在:/etc/mysql/mysql.cnf。

字符配置改为:

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

步骤二:改已有的 database、table 和 column 字符集

msql> ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

msql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

msql> ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

其中的 database_name、table_name、column_name 要替换成你对应的数据库名、表名、列名。VARCHAR 的长度值也是。

步骤三:重启 Mysql 并检查更改后的字符集设置

Linux 下重启命令:

# service mysql restart

再次登陆 Mysql 并查看字符集设置:

msql> SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

此时结果应该如下:

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client    | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database  | utf8mb4            |
| character_set_filesystem | binary            |
| character_set_results    | utf8mb4            |
| character_set_server    | utf8mb4            |
| character_set_system    | utf8              |
| collation_connection    | utf8mb4_unicode_ci |
| collation_database      | utf8mb4_unicode_ci |
| collation_server        | utf8mb4_unicode_ci |
+--------------------------+--------------------+
rows in set (0.00 sec)

步骤四:关于 JDBC URL

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true
jdbc.username=root
jdbc.password=password

autoReconnect 表示:当数据库连接异常中断时,是否自动重新连接?默认是 false。

 

分享到:
评论

相关推荐

    MySQL保存emoji表情

    在Java开发环境中,当数据库使用MySQL且编码设置为UTF-8时,尝试存储包含emoji表情的数据可能会遇到如下错误: ``` java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x93' for column '...

    Mysql支持emoji 表情符号 升级编码为UTF8MB4

    如果经过上述步骤,应用无法连接数据库,请检查当前使用的mysql-connector-java.jar的版本,建议升级到mysql-connector-java-5.1.31.jar。 注意事项 * 在升级编码时,需要注意可能会影响到数据库中的数据,建议在...

    Java emoji持久化mysql过程详解

    Java emoji持久化mysql过程详解 Java emoji持久化mysql过程详解是指在Java应用程序中如何将emoji表情持久化到mysql数据库的过程。由于mysql的utf-8字符集不能保存四字节的emoji表情符号,所以需要特殊处理。下面将...

    mysql数据库支持emoji表情实例

    MySQL数据库在5.7.6版本之后开始正式支持Unicode 8.0,这其中包括了大量的emoji表情。这个实例展示了如何在MySQL数据库中存储、查询和使用emoji。以下是对这个实例的详细解析: 一、MySQL数据库与emoji支持 1. **...

    java emoji表情存储的解决方法

    首先, Java 中 emoji 表情存储的问题产生是由于 MySQL 数据库的编码问题。在 MySQL 中,默认的 utf8 编码只能存储三个字节的字符,而 emoji 表情需要四个字节的存储空间,因此无法存储 emoji 表情。为了解决这个...

    emoji表情符号mysql插入与读取

    本主题将详细探讨“emoji表情符号在MySQL中的插入与读取”这一关键知识点。 首先,我们来了解问题的核心所在:字符编码。MySQL默认使用的`utf8`字符集只支持最多3个字节的Unicode字符,而大多数emoji表情符号属于4...

    java web处理 emoji demo

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

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

    然而,对于开发人员来说,确保服务端应用(例如基于MySQL数据库和Java技术栈的后端服务)能够正确处理和存储emoji符号,是一项需要特别注意的任务。MySQL和Java服务端对emoji的支持并不是自然而然的,而是需要开发者...

    java ipone 微信昵称emoji表情保存失败 问题解决

    当iPhone 5s用户尝试在昵称中使用emoji表情时,这些表情无法成功保存到MySQL数据库中,导致报出"java.sql.SQLException: Incorrect string value"的错误。这个问题的根本原因在于字符编码的不兼容性。 首先,我们...

    让Java后台MySQL数据库能够支持emoji表情的方法

    最近开发的iOS项目因为需要用户文本的存储,自然就遇到了emoji等表情符号如何被mysql DB支持的问题。下面这篇文章主要介绍了关于让Java后台MySQL数据库能够支持emoji表情的方法,需要的朋友可以参考下。

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

    用户昵称中存在emoji表情,调用jdbc往mysql数据库插入的时候抛出异常 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\x9B' 失败原因 mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4...

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

    ### emoji入库MySQL注意事项 在处理含有emoji表情的数据时,往往会遇到一些意料之外的问题,尤其是在将其存储到MySQL数据库中时。本文将详细探讨如何解决这一问题,并特别关注使用PHP通过PDO连接MySQL时需要注意的...

    mysql存储emoji表情步骤详解

    Caused by: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x94\xA5’ for column Emoji表情存储到Mysql中时报错。 ios的表情(emoji表情),这种表情虽然是utf8编码,但是一个字符需要占用4个字节,而...

    java处理数据库不支持的emoji表情符问题解决

    java处理数据库不支持的emoji表情符问题解决 在当今社会中,emoji表情符已经成为我们日常生活中的一个重要组成部分。然而,在数据库中存储emoji表情符时,却可能会出现一些问题。主要是因为大多数数据库的编码是utf...

    在项目中使用Emoji表情【源代码】.7z

    大多数现代编程语言(如JavaScript、Python、Java、C#等)默认支持Unicode,因此可以直接使用对应的Unicode码点来插入Emoji。例如,微笑的表情``在Unicode中的码点是U+1F60A,可以用`\u1F60A`表示。 2. **前端实现*...

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

    MySQL存储Emoji表情报错的处理方法是通过将MySQL数据库的编码更改为utf8mb4来实现的。Emoji表情是使用Unicode编码的字符,通常占用4个字节。而MySQL中的utf8编码只支持最多3个字节的字符,因此当尝试存储4字节的...

    emoji发表情显示表情

    确保服务器端的编程语言(如PHP、Python、Java等)和数据库(如MySQL、PostgreSQL)配置正确,能够识别并存储Unicode字符。例如,对于MySQL,确保数据库字符集设置为`utf8mb4`,因为`utf8`不完全支持所有Unicode字符...

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

    在MySQL中保存微信昵称,特别是包含特殊字符如表情符号(Emoji)的昵称时,可能会遇到插入数据时报错的问题。这是因为MySQL的默认UTF-8字符集(实际上是`utf8`,并非完全标准的UTF-8)仅支持最多3字节的字符,而一些...

Global site tag (gtag.js) - Google Analytics