如何将数据库中所有字段从latin1_swedish_ci更改为utf8_general_ci?

4

标题已经说明一切,对吧? :)

详情: 我正在寻找一个可以在phpmyadmin中使用的SQL查询语句。需要将一个数据库中所有字段从latin1_swedish_ci更改为utf8_general_ci。


1
我一直想知道为什么latin1_swedish_ci是默认设置。我知道MySQL AB是一家瑞典公司,但你会认为他们会默认使用Unicode... - Wyzard
2个回答

1
你的主要问题在于当你从表中更改排序规则/字符集时,表内数据是latin1,直到此时表才是utf8。

你可以尝试使用旧字符集对表进行转储。

mysqldump -uuser -p --default-character-set=latin1 dbname > dump.sql

然后像这样使用新字符集导入数据库:

mysql -uuser -p --default-character-set=utf8 dbname_test < dump.sql

为了测试,我会将转储文件导入到测试数据库中。如果导入后字符不正确,请使用像pspadnotepad++这样的编辑器,并将文件编码更改为UTF-8。之后,您可以再次尝试导入。

大多数情况下,编码非常令人讨厌,但我希望您能解决它。

当您只有phpmyadmin时,请使用“导出”功能并使用phpmyadmin执行相同操作。以实际编码导出并尝试在新编码中导入,但然后您必须更改文件编码。


1

在 MySql 中将默认排序规则更改为 utf8_general_ci:

Open the my.ini file. (C:\xampp\mysql\bin\my.ini)
Find the text [mysqld] and add the below lines.

[mysqld]

character-set-server = utf8

collation-server = utf8_general_ci

这段文字是关于IT的内容,它涉及到MySQL数据库的设置。其中包括字符集和排序规则的设置,确保数据库能够正确地处理各种语言和字符编码。
The above two lines will select a character set and collation at server startup. These settings apply server-wide and apply as the defaults for databases created by any application, and for tables created in those databases. 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接