【问题标题】:Why database stores characters as ??? while they are rendered correctly in API response?为什么数据库将字符存储为???虽然它们在 API 响应中正确呈现?
【发布时间】:2019-11-19 15:45:01
【问题描述】:

我有一个 RESTFul POST 端点,可以将数据保存到 MYSQL 数据库中。表列之一应存储特殊字符,例如???? ❤️ ????。保存它们后,我发现在数据库中并非所有字符都正确存储。例如,上述字符存储为? ❤️ ?.

但是当使用 GET 端点检索相同的记录时,字符被成功检索并且它们保留了它们的值。

列排序规则详细信息为:CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

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

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

【问题讨论】:

    标签: mysql jdbc character-encoding special-characters collation


    【解决方案1】:

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

    SHOW VARIABLES LIKE 'char%'.
    
    SHOW CREATE TABLE ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-01
      • 2020-03-15
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多