服务器和本地主机字符集之间不兼容
Incompatibility between server and localhost charset
我目前正在开发 Spring 以 MariaDB 作为数据库的启动应用程序。我的本地主机是 Windows 10 安装,生产服务器是 AWS Linux(第一代)映像。
在本地主机上,我安装了本地 MariaDB。
在生产环境中,我有一个 AWS RDS 实例 运行 MariaDB,默认参数。
目前我面临的问题如下,我正在尝试将以下字符["↑"、"↓"、"→"、"←"]保存到数据库中。在本地主机上,字符被保存为例外。在生产服务器上,字符保存为“?”。两个数据库都有相同的 mysqldump 文件。
我已经调试了两个 Spring 个实例,它们都按预期接收参数。
有什么想法吗?
额外 1:
两个实例之间唯一的大区别是 localhost 使用 ./mvnw 命令运行,而生产站点是在 Docker 容器中生成的 jar 运行。
在utf8(或utf8mb4)中,这些字符是十六进制的E28691 E28693 E28692 E28690
请参阅 中的 "question mark",了解您未能执行的步骤的说明。
此外,检查 getConnection()
调用中的 ?useUnicode=yes&characterEncoding=UTF-8
。
我目前正在开发 Spring 以 MariaDB 作为数据库的启动应用程序。我的本地主机是 Windows 10 安装,生产服务器是 AWS Linux(第一代)映像。
在本地主机上,我安装了本地 MariaDB。 在生产环境中,我有一个 AWS RDS 实例 运行 MariaDB,默认参数。
目前我面临的问题如下,我正在尝试将以下字符["↑"、"↓"、"→"、"←"]保存到数据库中。在本地主机上,字符被保存为例外。在生产服务器上,字符保存为“?”。两个数据库都有相同的 mysqldump 文件。
我已经调试了两个 Spring 个实例,它们都按预期接收参数。
有什么想法吗?
额外 1:
两个实例之间唯一的大区别是 localhost 使用 ./mvnw 命令运行,而生产站点是在 Docker 容器中生成的 jar 运行。
在utf8(或utf8mb4)中,这些字符是十六进制的E28691 E28693 E28692 E28690
请参阅
此外,检查 getConnection()
调用中的 ?useUnicode=yes&characterEncoding=UTF-8
。