如何将数据库中的所有字段从 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