当前位置: 首页 > 知识库问答 >
问题:

获取[SqlExceptionHelper]错误的字符串值:'\xF0\x9F\x90\xBE V...'尽管该表位于UTF-8[重复]

湛宝
2023-03-14

在我的java项目中,我不断得到[SqlExceptionHelper]不正确的字符串值:'\xF0\x9F\x90\xBE V...',尽管MySQL Workbench显示该表是UTF-8,并且在工作台中添加值“Brandstätter”有效。

我在工作台中将排序规则从utf8更改为utf8mb4,但这不起作用。另外,在java项目中,我的apprament.properties文件:jdbc.url = jdbc:mysql://localhost:3306/recommendations?useUnicode=true

此外,这将返回 utf8从information_schema中选择default_character_set_name。SCHEMATA S WHERE schema_name = “db-name”;

我能做些什么呢?

编辑:插入的数据:“Loyߐ¾虚拟宠物游戏”。

Edit2:现在我看得更清楚了,这个应用程序的名称解决了这个问题。我该怎么办?忽略奇怪的字符(带有<code>字符。isISOControl,或者有比UTF-8更强大的排序规则吗?

共有1个答案

曹原
2023-03-14

您的表和与数据库的连接中需要utf8mb4

这是线索:

\xF0\x9F\x90\xBE

请注意,第一个字节是十六进制< code>F0。这是一个4字节“字符”的UTF8导入。MySQL的< code>utf8不能处理超过3个字节的数据;< code>utf8mb4可以。

注意:在MySQL之外,“UTF-8”表示任何长度的字符。在MySQL内部,“utf8”和“utf8mb4”之间存在令人困惑的区别。

 类似资料: