【问题标题】:Migrating SQL Server table to MySQL table with different encodings将 SQL Server 表迁移到具有不同编码的 MySQL 表
【发布时间】:2015-08-31 23:43:51
【问题描述】:

我在 SQL 服务器中有一个表,我想将它移动到 MySQL 表中。但是,我想将默认编码从 latin-1 更改为 utf-8。我尝试运行 SQL Server 导入和导出向导,它将 csv 导出到文件。当我为“代码页”选择 utf-8 编码时,它会失败。它存储为 latin-1

无论如何,我想知道如何导出这些数据并将其作为 utf-8 导入 MySQL?我不想打开文本编辑器并将导出的文件另存为 UTF-8。

【问题讨论】:

  • 哪个向导?导出向导是否创建文件?文件长什么样?导入是如何执行的?
  • SHOW CREATE TABLESELECT col, HEX(col) FROM tbl WHERE ... 用于一些小样本。这样我们就可以看是utf16还是别的什么了。
  • SQL Server 导入和导出向导。所以我右键单击一个数据库,然后可以选择任务>导出数据来启动它。我运行了SHOW CREATE TABLE 并收到了SQL_Latin1_General_CP1_CI_AS 编码。

标签: mysql sql-server encoding utf-8 latin1


【解决方案1】:

A 计划:

继续导出为SQL_Latin1_General_CP1_CI_AS,但一定要将导入设置为CHARACTER SET utf8

但是,如果CREATE TABLE 语句被埋在转储中,这可能会很棘手。所以...

B 计划:

目前正在进行的导出和导入。然后,对于每个表,做

ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;

如果你打算处理中文,utf8mb4会更好。
对于许多用途,默认的COLLATE utf8_general_ci 很好,但您可以考虑utf8_unicode_ci

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 2016-05-12
    • 1970-01-01
    • 2011-03-31
    • 2015-11-17
    • 1970-01-01
    • 2011-10-07
    • 2023-03-19
    相关资源
    最近更新 更多