Mysql 10.2.25-ADB不允许使用多种语言的数据
Mysql版本:Mysql 10.2.25-ADB不允许使用多种语言的数据,mysql,mariadb,innodb,Mysql,Mariadb,Innodb,Mysql版本:10.2.25-MariaDB ENGINE=InnoDB 我试图保存数据,比如: 但它只显示问号:?? 我已经试过: Utf8, Utf8mb4 charset & utf8_general_ci, utf8_unicode_ci collation 但它们似乎都不起作用 我应该使用什么字符集或排序规则将数据保存为多个字符 语言 更新: 同一个项目在我的本地机器上以多种语言保存和检索数据(在本地机器上使用mysql)。但我部署代码的服务器使用的是maria db 更
10.2.25-MariaDB
ENGINE=InnoDB
我试图保存数据,比如:
但它只显示问号:??
我已经试过:
Utf8, Utf8mb4 charset & utf8_general_ci, utf8_unicode_ci collation
但它们似乎都不起作用
我应该使用什么字符集或排序规则将数据保存为多个字符
语言
更新:
同一个项目在我的本地机器上以多种语言保存和检索数据(在本地机器上使用mysql)。但我部署代码的服务器使用的是maria db
更新2:
为了确保数据库出现问题,并且客户端正在向数据库发送正确的数据,我在将数据保存到数据库之前将数据保存到了一个文本文件中。文本文件包含正确的数据,但数据库中有?
SHOW VARIABLES LIKE 'character_set%'
检查字符集\数据库
,字符集\连接
和字符集\结果
很可能服务器默认字符集不是UTF-8,因此您需要在连接后通过发出set NAMES UTF8
手动配置连接
在php中,您可以使用$connection->set\u字符集('UTF8')
此外,您还需要检查表格字符集(SHOW CREATE TABLE xyz
)。
如果您的数据库字符集未设置为UTF8,并且您创建的表中没有为每个表/列指定字符集,这些表无法容纳UTF8字符,您需要重新创建它们。我在连接字符串中添加了charset=UTF8
,它成功了。但它只是在UTF8 CLI控制台窗口中显示问号?可能您的客户端无法显示它们,并且数据库中的数据也很好。我使用的是phpmyadmin,我刚刚检查了表中的数据,它有?
我已经更新了问题,请检查这是否有帮助?谢谢,您的回答给了我更新连接字符串的线索。