在MySQL中保存非英语语言显示?????

在MySQL中保存非英语语言显示?????,mysql,unicode,collation,hindi,Mysql,Unicode,Collation,Hindi,我正试图将一些印度语内容(阅读印地语)从一个网站保存到MySQL数据库的一个列中。我正在使用SpringBoot和JPA来抓取网站并编写内容 在我的本地系统(OSX)上一切正常。同样的代码部署在Ubuntu 16.04 LTS上。除了相关db列的内容显示“??”外,它工作正常。我推测可能是prod实例的MySQL的排序规则和字符集有问题 实际上,我本地机器上的MYSQL版本是8.x。本地数据库的排序规则为utf8mb4_0900_ai_ci。prod上的版本是5.6,排序规则是utf8\ux\u

我正试图将一些印度语内容(阅读印地语)从一个网站保存到MySQL数据库的一个列中。我正在使用SpringBoot和JPA来抓取网站并编写内容

在我的本地系统(OSX)上一切正常。同样的代码部署在Ubuntu 16.04 LTS上。除了相关db列的内容显示“??”外,它工作正常。我推测可能是prod实例的MySQL的排序规则和字符集有问题

实际上,我本地机器上的MYSQL版本是8.x。本地数据库的排序规则为utf8mb4_0900_ai_ci。prod上的版本是5.6,排序规则是utf8\ux\ux。显然,utf8mb4_0900_ai_ci不适用于8.x之前的版本

我尝试将本地计算机上的列排序规则(这方面的整个模式)更改为utf8mb4_general_ci,以及utf8mb4_unicode_ci。这两种方法都可以在本地数据库上正常工作。但同样的排序规则,即utf8mb4_general_ci和utf8mb4_unicode_ci,在prod环境中仍然给出“??”

这可能是“排序”以外的问题吗?我能够在终端上打印印地语内容,包括本地和Ubuntu部署。客户机出现问题的可能性较小,因为同一个客户机(Datagrip)很好地显示了本地模式内容,而ubuntu DB内容显示为神秘的问号


我在谷歌上搜索了两天。任何帮助都将不胜感激。

您的客户是否与同一个驱动程序连接?您是否使用不同的客户端验证了您的数据库数据以隔离问题?排序,与“?”无关。字符集,是的,但有几个地方。请参阅@Rick中的“问号”,我相信字符集会被排序规则锁定,即排序规则utf8mb4_x=>字符集是utf8mb4。列(和表格)具有正确的字符集-utf8mb4。尽管“设置名称…”,但无法使内容正确可见。诉诸暴力。将数据库更新为8.x。已将字符集设置为utf8mb4_0900_ai_ci。一切正常。谢谢您的帮助。@AbhishekPrabhat-客户端中的字节和连接参数也很重要。对于其他遇到此问题的用户,您可以尝试以下方法(对我有效):在数据库上:ALTER database database\u name CHARACTER SET utf8mb4 COLLATE utf8mb4\u unicode\u ci;-它将解决“从现在开始”创建的表。不适用于现有表。对于这些表,您需要执行以下操作:更改表名转换为字符集utf8mb4整理utf8mb4\U unicode\U ci;源-