为什么数据库将字符存储为????在API响应中正确呈现它们时?

问题描述 投票:0回答:1

我有一个RESTFul POST端点,该端点将数据保存到MYSQL数据库中。表格的其中一栏应存储特殊字符,例如👩❤️💋。保存它们后,我发现并非所有字符都正确存储在数据库中。例如,以上字符存储为? ❤️?。

但是,当使用GET端点检索相同的记录时,将成功检索字符并保留其值。

列排序规则的详细信息是:字符集utf8mb4 COLLATE utf8mb4_unicode_ci

我的JDBC URL具有此参数:&useUnicode=true&characterEncoding=UTF-8

是否有一种方法可以看到存储的正确值而不是???

mysql jdbc character-encoding special-characters collation
1个回答
0
投票

'woman'和'kiss'是非BMP字符,因此在MySQL中需要utf8mb4,而不是utf8。这与? ❤️ ?一起表示在某处提到了utf8。检查

SHOW VARIABLES LIKE 'char%'.

SHOW CREATE TABLE ...
© www.soinside.com 2019 - 2024. All rights reserved.