您的位置:首页 > 数据库 > MySQL

mysql 插入表情符号 '\xF0\x9F\x8D\xB0</...' 报错的解决方法

2017-05-25 10:46 253 查看

在很多社交平台,博客上,可以看到有好多表情符号,这些表情符号是由unicode编码定义的,并不是我们以为的图片。在mysql中,如果插入的这些数据,即使数据库字符是utf8编码,也会报错。这是因为utf8编码不能包含这些特殊表情符号,得使用utf8mb4.  以下是解决步骤:

1. 修改数据库配置文件 my.ini/my.conf(linux)

[mysql]
default-character-set=utf8mb4
character-set-server=utf8mb4 
collation_server=utf8mb4_unicode_ci
 

[mysqld]
character-set-server=utf8mb4
init-connect="SET NAMES utf8mb4"

在配置文件中修改后,以后添加的table, 字段一般就是utf8mb4了

2. 修改数据库,数据表,字段的编码

如果之前数据库不是utf8mb4,则需要单独修改table和字段

修改某张表的某个字段

ALTER TABLE  mytable MODIFY COLUMN `content` MEDIUMTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci

修改整个数据库

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8mb4_unicode_ci;

3.在编程代码中使用合适的连接方式

以java jdbc为例,jdbcUrl为  

jdbc:mysql://localhost:3306/mydb?useUnicode=yes&characterEncoding=UTF-8

 

以上三步,最终结果要确保 数据库,数据表,数据列的字符编码为utf8mb4, 校对规则为utf8mb4_unicode_ci。

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql utf8mb4 表情符号