10.2.25-MariaDB 不允许多语言数据

10.2.25-MariaDB not allowing data in multiple languages

Mysql版本:10.2.25-MariaDB

ENGINE=InnoDB

我正在尝试保存如下数据:پہمغیابج ماوبرنم کرنامت

但它只显示问号:????

我已经试过了:

Utf8, Utf8mb4 charset & utf8_general_ci, utf8_unicode_ci collation

但其中 none 似乎有效。

What charset or collation should I use to save data in multiple languages?

更新:

同一项目正在我的本地计算机上以多种语言保存和检索数据(在本地计算机上使用 mysql)。但是我部署代码的服务器正在使用 maria-db。

更新二:

为了确保它的数据库问题和客户端向数据库发送正确的数据,我在将数据保存到数据库之前将其保存到一个文本文件。文本文件包含正确的数据,但数据库中有 ???

SHOW VARIABLES LIKE 'character_set%'

检查 character_set_databasecharacter_set_connectioncharacter_set_result

服务器默认字符集很可能不是 UTF-8,因此您需要在连接后立即发出 SET NAMES UTF8 来手动配置连接。

在 php 中,您可以使用 $connection->set_charset('UTF8')

执行相同的操作

您还需要检查您的表字符集 (SHOW CREATE TABLE xyz)。 如果您的数据库字符集未设置为 UTF8,并且您创建的表没有根据 table/columns 指定的字符集,则这些表不能包含 UTF8 字符,您将需要重新创建它们。

我在 connectionstring 中添加了 charset=utf8 并且有效。