phpmyadmin 如何在MySQL中更新奇怪的字符?

ymdaylpp  于 2022-11-09  发布在  PHP
关注(0)|答案(1)|浏览(135)

我的数据库服务器正面临这个问题。首先,我从Godaddy购买了一台服务器,他们的数据库服务器如下:

Server: Localhost via UNIX socket
Server type: MySQL
Server connection: SSL is not being used Documentation
Server version: 5.6.51-cll-lve - MySQL Community Server (GPL)
Protocol version: 10
Server charset: cp1252 West European (latin1)

所以当我从我的网站输入汉字时,它在数据库中显示为这样

美嘉11c10

但当我从数据库中检索这些数据并再次在网站上显示时,它就显示出来了。

你好世界

现在,我的问题是,我已经改变了我的托管服务器。我现在在Bluehost服务器上。他们有不同的数据库服务器,如下所示:

Server: Localhost via UNIX socket
Server type: Percona Server
Server connection: SSL is not being used Documentation
Server version: 5.7.23-23 - Percona Server (GPL), Release 23, Revision 500fcf5
Protocol version: 10
Server charset: UTF-8 Unicode (utf8)

它不像Godaddy的服务器那样工作。
我无法从Bluehost上的PHPMyAdmin更改我的数据库服务器字符集。我愿意接受任何解决方案。如果我更新这些奇怪的字符,使它们重新成为中文字符,会更好。

blpfk2vs

blpfk2vs1#

您必须使用utf8mb4--既用于可能包含中文字符的列,也用于连接(假设客户端使用UTF-8)。
Latin 1不起作用。cp 1252不起作用。MySQL的“utf8”不包含所有中文字符;则需要UTF8 MB 4。
更多讨论:Trouble with UTF-8 characters; what I see is not what I stored
如果您提供一个SELECT HEX(col) ...的示例和您所期望的中文,我可能会提供一个“修复”数据。例如:

CONVERT(BINARY(CONVERT('好世界' USING latin1)) USING utf8mb4) --> '好世界'

我会觉得在SQL中“修复”文本比在客户端(如Python)中更安全。

相关问题