spring - 服务器和本地主机字符集之间不兼容
问题描述
我目前正在开发一个使用 MariaDB 作为数据库的 Spring Boot 应用程序。我的本地主机是 Windows 10 安装,生产服务器是 AWS Linux(第一代)映像。
在 localhost 我有一个本地 MariaDB 安装。在生产中,我有一个运行 MariaDB 的 AWS RDS 实例,默认参数。
目前我面临的问题如下,我正在尝试将以下字符 [“↑”、“↓”、“→”、“←”] 保存到 DB。在 localhost 字符被保存为例外。在生产服务器上,字符被保存为“?”。两个数据库都有相同的 mysqldump 文件。
我已经调试了两个 Spring 实例,它们都按预期接收参数。
有任何想法吗?
额外1:
两个实例之间唯一的大区别是 localhost 使用 ./mvnw 命令运行,而生产站点是在 Docker 容器中运行的生成的 jar。
解决方案
在 utf8(或 utf8mb4)中,这些字符是十六进制 E28691 E28693 E28692 E28690
请参阅“ UTF-8 字符问题”中的“问号” ;我看到的不是我为解释您未能执行的步骤而存储的内容。
此外,请?useUnicode=yes&characterEncoding=UTF-8
在getConnection()
通话中检查。
推荐阅读
- postgresql - 为什么过滤时使用相同的字段会导致不同的执行时间?(不同的索引用法)
- c - C语言地址分配查询
- ios - 错误:架构 x86_64 的未定义符号:react-native (iOS) 中的“_OBJC_CLASS_$_RNPermissionHandlerPhotoLibrary”
- node.js - 此请求的币安签名无效错误
- python - 具有圆形距离的网格python
- c# - 按钮可以在 C# 中切换布尔值
- runtime-error - Xcode 12.5 损坏 NavigationLink
- rxjs - RxJs 轮询工作 - 链接是否正确?
- javascript - 如何在 TypeScript react-native 中使用 Intrinsic 属性作为类型
- edgeengine - 无法在 raspbian 中登录 mimik 开发者控制台