首页 > 解决方案 > 服务器和本地主机字符集之间不兼容

问题描述

我目前正在开发一个使用 MariaDB 作为数据库的 Spring Boot 应用程序。我的本地主机是 Windows 10 安装,生产服务器是 AWS Linux(第一代)映像。

在 localhost 我有一个本地 MariaDB 安装。在生产中,我有一个运行 MariaDB 的 AWS RDS 实例,默认参数。

目前我面临的问题如下,我正在尝试将以下字符 [“↑”、“↓”、“→”、“←”] 保存到 DB。在 localhost 字符被保存为例外。在生产服务器上,字符被保存为“?”。两个数据库都有相同的 mysqldump 文件。

我已经调试了两个 Spring 实例,它们都按预期接收参数。

有任何想法吗?

额外1:

两个实例之间唯一的大区别是 localhost 使用 ./mvnw 命令运行,而生产站点是在 Docker 容器中运行的生成的 jar。

标签: springamazon-web-servicescharacter-encodingmariadbamazon-rds

解决方案


在 utf8(或 utf8mb4)中,这些字符是十六进制 E28691 E28693 E28692 E28690

请参阅“ UTF-8 字符问题”中的“问号” ;我看到的不是我为解释您未能执行的步骤而存储的内容。

此外,请?useUnicode=yes&characterEncoding=UTF-8getConnection()通话中检查。


推荐阅读