Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Mysql和Hibernate时Emojis的字符集编码问题_Mysql_Hibernate_Encoding_Utf 8_Emoji - Fatal编程技术网

使用Mysql和Hibernate时Emojis的字符集编码问题

使用Mysql和Hibernate时Emojis的字符集编码问题,mysql,hibernate,encoding,utf-8,emoji,Mysql,Hibernate,Encoding,Utf 8,Emoji,我有一个用Spring/Hibernate/Spring-Data/Jpa编码的应用程序 当我尝试更新实体时,出现以下错误: [ERROR] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Incorrect string value: '\xEF\x83\xA8 Be...' for column 'description' at row 1 为了解决这个问题,我应该在Mysql中使用什么字符集 谢谢您应该使用utf8mb4MySQL字符

我有一个用Spring/Hibernate/Spring-Data/Jpa编码的应用程序

当我尝试更新实体时,出现以下错误:

[ERROR] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Incorrect string value: '\xEF\x83\xA8 Be...' for column 'description' at row 1
为了解决这个问题,我应该在Mysql中使用什么字符集


谢谢

您应该使用
utf8mb4
MySQL字符集,该字符集也已成为

引用MySQL服务器团队的帖子,如果你想使用Emojis,那么你需要
utf8mb4
字符集

即使是在英语市场,表情符号的流行也是如此 字符输入正在推动utf8mb4取代utf8mb3和 拉丁语1

您可以使用以下
alterdatabase
SSL语句设置
utf8mb4
字符集:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

我想你的字符串包含了一些表情符号。出于这个原因,它抛出了这个异常。请看类似的问题,在我的例子中,它不适用于emojis,它出现在我将PDF或MS word文档复制/粘贴到mysql中的Varchar列时。MS Word的内容包含特殊字符。也许这个解决方案在这种情况下有效,以确保您使用输入源编码读取MS Word文档,并以UTF8格式提取数据。然后,从应用程序到数据库仅使用UTF8。