我想将数据库转换为 utf-8。到目前为止我所做的是将服务器设置为读取 utf-8 并使用以下查询转换数据库:
ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_unicode_ci;
现在所有新信息都已可见,之前损坏的东西现在都好了。问题是旧数据被视为 �。在我看来,这是由于旧数据是在 windows-1251 中写入的(我认为至少,但我不是 100% 确定)。
我发现我需要转储数据:
mysqldump -uroot -p database -r utf8.dump
然后导入它:
mysql -uroot -p --default-character-set=utf8 database
mysql> SET names 'utf8'
mysql> SOURCE utf8.dump
这是我从这里看到的:https://makandracards.com/makandra/595-dumping-and-importing-from-to-mysql-in-an-utf-8-safe-way
问题是我完全不知道在哪里以及如何做到这一点。 我只能访问网络托管控制面板,并且我未在我的计算机上设置任何内容。因此,我不知道如何将数据库连接到命令shell等等。接下来我应该做什么来将数据转换为 utf-8?请提供任何详细的解释,因为这是我第一次做这样的事情。
//我有一台 Mac 和一台 Windows 机器,但目前没有 Linux。
谢谢!
最佳答案
数据库的字符集和排序规则是任何后续创建的表的默认。 表设置是列的默认设置。
对于每个表,这样:
ALTER TABLE table_name CONVERT TO utf8mb4;
关于mysql - 我将数据库转换为 utf-8,但旧数据仍在 windows-1251 中。如何转换呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42684894/