我的数据库服务器正面临这个问题。首先,我从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更改我的数据库服务器字符集。我愿意接受任何解决方案。如果我更新这些奇怪的字符,使它们重新成为中文字符,会更好。
1条答案
按热度按时间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) ...
的示例和您所期望的中文,我可能会提供一个“修复”数据。例如:我会觉得在SQL中“修复”文本比在客户端(如Python)中更安全。