我想把twitter api中的twitter数据保存在mysql数据库中。但一些用户的微博却有不同的特点。
字符串值不正确:第1行“name”的“\xf0\x9f\x87\xb5\xf0\x9f…”列hh000346:托管刷新期间出错[org.hibernate.exception.genericjdbception:could not execute statement]
我的连接url是:
jdbc:mysql://127.0.0.1:3306/social_media?useUnicode=yes&characterEncoding=UTF-8
我改变了mysql变量和表的charecter编码。当我在下面运行查询时
> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR
> Variable_name LIKE 'collation%';
结果是:
character_set_client : utf8mb4
character_set_connection : utf8mb4
character_set_database : utf8mb4
character_set_filesystem : binary
character_set_results : utf8mb4
character_set_server : utf8mb4
character_set_system : utf8
collation_connection : utf8mb4_unicode_ci
collation_database : utf8mb4_unicode_ci
collation_server : utf8mb4_unicode_ci
1条答案
按热度按时间ds97pgxw1#
您环境中的某些内容未设置为正确处理unicode文本。
字节序列
F0 9F 98 9C
,错误地表示为“ðÿ˜œ" 在您的查询中,是unicode字符“?”的utf8编码,这是一张伸出舌头和眨眼的脸(也就是说,它是一个表情符号字符。)要正确存储此字符,您需要确保:
您正在mysql连接上启用utf8(即,
SET NAMES utf8mb4
,或在连接时使用类似的启用选项)。您正在运行MySQL5.5或更高版本。
表的字符集为
utf8mb4
.取自https://stackoverflow.com/a/34165651/6572971