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

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

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

【问题讨论】:

  • 我一直想知道为什么 latin1_swedish_ci 是默认值。我知道 MySQL AB 是一家瑞典公司,但你会认为他们默认使用 Unicode……

标签: mysql sql database replace 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]

字符集服务器 = 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
    

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 2011-06-13
      相关资源
      最近更新 更多