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

Posted

技术标签:

【中文标题】如何将数据库中的所有字段从 latin1_swedish_ci 更改为 utf8_general_ci?【英文标题】:How to change all fields in database from latin1_swedish_ci to utf8_general_ci? 【发布时间】:2012-04-12 20:24:53 【问题描述】:

标题说明了一切,对吗? :)

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

【问题讨论】:

我一直想知道为什么 latin1_swedish_ci 是默认值。我知道 mysql AB 是一家瑞典公司,但你会认为他们默认使用 Unicode…… 【参考方案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]

字符集服务器 = utf8

排序服务器 = utf8_general_ci

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. 

【讨论】:

【参考方案2】:

您的情况的主要问题是,当您从表中更改排序规则/字符集时,表中的数据是 latin1 而表是 utf8,直到那时。

您可以尝试使用旧字符集转储表格。

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

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

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

为了测试,我会将转储导入测试数据库。如果导入后字符不正确。使用 pspad 或 notepad++ 之类的编辑器并将文件编码更改为 UTF-8。在此之后,您可以尝试再次导入。

大多数时候编码很烦人,但我希望你能解决它。

当您只有 phpmyadmin 时,使用“导出”功能并与 phpmyadmin 相同。以实际编码导出并尝试以新编码导入,但我认为您必须更改文件编码。

【讨论】:

以上是关于如何将数据库中的所有字段从 latin1_swedish_ci 更改为 utf8_general_ci?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 java/android 中的字符串变量创建字段 ID

如何从 pymongo 字段中的所有值创建一个列表?

如何从另一种方法访问 tableviewCell 中的文本字段

Oracle如何在将一个数据库中的所有表都加上某些字段。

将字段名称从 MySQL 表回显到网页 [关闭]

如何将数据库中所有表中的字段之一更改为新值?