Mysql服务器无法存emoji表情的解决方案
来源:互联网 发布:淘宝投诉卖家态度恶劣 编辑:程序博客网 时间:2024/06/05 19:51
使用Mysql服务器的utf8字符编码,在存入emoji表情时会报异常:
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1
原因:
utf8是三字节,utf8mb4是4字节而emoji表情也是4字节。
解决方法:
修改mysql配置文件my.cnf
(windows为my.ini)
my.cnf一般在etc/mysql/my.cnf
位置。找到后请在以下三部分里添加如下内容:
[client] default-character-set = utf8mb4[mysql] default-character-set = utf8mb4[mysqld]character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect='SET NAMES utf8mb4'
重启 MySQL Server、检查字符集
1.)重启命令参考:/etc/init.d/mysql restart
2.)输入命令:mysql,进入mysql命令行(如果提示没权限,可以尝试输入mysql -uroot -p你的密码)
3.)在mysql命令行中输入:
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
修改服务端的db配置文件
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/test?useUnicode=true&autoReconnect=true&rewriteBatchedStatements=TRUEusername=rootpassword=root
大于5.1.13的版本去掉characterEncoding=utf8就ok,不去掉都是这种错:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94'
附上批量转数据库表编码的代码:
@Testpublic void testC() { // 获取所有表 Connection conn = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/happy_help?useUnicode=true&autoReconnect=true&rewriteBatchedStatements=TRUE", "root", "root"); ResultSet rs = conn.getMetaData().getTables(conn.getCatalog(), "root", null, new String[]{"TABLE"}); while(rs.next()) { String tableName = rs.getString("TABLE_NAME"); String sql = "ALTER TABLE "+tableName+" CONVERT TO CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci`"; PreparedStatement ps = conn.prepareStatement(sql); ps.executeUpdate(); } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally { if(conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }}
阅读全文
0 0
- Mysql服务器无法存emoji表情的解决方案
- mysql 存emoji表情 utf8mb4
- mysql存emoji表情报错处理
- mysql存emoji表情报错处理
- 关于mysql的emoji表情问题(服务器node)
- mysql数据库存储emoji表情字符解决方案
- java Mysql 存储emoji表情解决方案
- MySQL无法存储Emoji表情问题
- MySQL无法存储Emoji表情问题
- emoji表情解决方案
- mysql支持emoji表情的方法
- MySQL中支持emoji表情的存储
- mysql存储emoji表情
- Mysql存储emoji表情
- mysql 支持emoji表情
- mysql emoji表情支持
- mysql存储emoji表情
- mysql保存emoji表情
- 7-Docker编配和服务发现
- IDE下多次运行main方法
- LAPM环境搭建
- 【以太坊】什么是雷电网络 Raiden network
- new方法后面加大括号进行Override
- Mysql服务器无法存emoji表情的解决方案
- php token
- 性能分析神器VisualVM
- 区分聚集索引、非聚集索引、聚簇索引、稀疏索引、稠密索引
- Java面试题集(86-115)
- cocos2dx 实现搓牌效果(翻牌效果),包括铺平动画
- Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词。例如: [html] view plain copy curl -XPOST "http://loca
- python中对文件、文件夹的操作需要涉及到os模块和shutil模块。
- C++笔记——运算符重载