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_database
、character_set_connection
和 character_set_result
。
服务器默认字符集很可能不是 UTF-8,因此您需要在连接后立即发出 SET NAMES UTF8
来手动配置连接。
在 php 中,您可以使用 $connection->set_charset('UTF8')
执行相同的操作
您还需要检查您的表字符集 (SHOW CREATE TABLE xyz
)。
如果您的数据库字符集未设置为 UTF8,并且您创建的表没有根据 table/columns 指定的字符集,则这些表不能包含 UTF8 字符,您将需要重新创建它们。
我在 connectionstring
中添加了 charset=utf8
并且有效。
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_database
、character_set_connection
和 character_set_result
。
服务器默认字符集很可能不是 UTF-8,因此您需要在连接后立即发出 SET NAMES UTF8
来手动配置连接。
在 php 中,您可以使用 $connection->set_charset('UTF8')
您还需要检查您的表字符集 (SHOW CREATE TABLE xyz
)。
如果您的数据库字符集未设置为 UTF8,并且您创建的表没有根据 table/columns 指定的字符集,则这些表不能包含 UTF8 字符,您将需要重新创建它们。
我在 connectionstring
中添加了 charset=utf8
并且有效。