mysql 插入表情符号 '\xF0\x9F\x8D\xB0</...' 报错的解决方法
在很多社交平台,博客上,可以看到有好多表情符号,这些表情符号是由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 varchar字段插入 moji表情错误问题解决(Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentC)
- Delphi+MySQL:TADOQuery使用插入中文乱码解决方法
- MySQL插入emoji表情失败问题的解决方法
- Data插入MySQL出现乱码解决方法
- C++操作MySQL大量数据插入效率低下的解决方法
- MySQL无法插入数据,解决MySql只能添加1000条数据的小方法
- mysql插入记录字符中包含中文报错的问题解决方法
- mysql插入操作--插入中文的时候报错的解决方法
- Mysql插入中文变为全问号???的问题 解决方法
- MySQL插入数据时,中文乱码问题解决方法
- Django向MySQL中插入汉字出错后的解决方法
- C# mysql 插入数据,中文乱码的解决方法
- mysql插入表中的中文字符显示为乱码或问号的解决方法
- 关于MySQL的dos客户端中文插入和显示utf-8乱码的解决方法
- mysql 5 插入数据有不识别字符问题 解决方法
- 关于mysql中文插入 问号??问题的解决方法!
- Mysql插入中文变为全问号???的问题 解决方法
- Delphi+MySQL:TADOQuery使用插入中文乱码解决方法
- MySQL 5.7 Invalid default value for 'CREATE_TIME'报错的解决方法
- 向MySQL中插入表情符号