尝试使用 MySQL Workbench 将 MSSQL 数据迁移到 MariaDB 时出现 UnicodeEncodeError

UnicodeEncodeError occurs when attempting to migrate MSSQL data to MariaDB with MySQL Workbench

我正在尝试使用 MySQL Workbench.

将数据从 SQL 服务器移动到 MariaDB

我一开始安装的是8.0.27版本,出现问题后降级到8.0.26版本,但问题并没有解决

我很困惑这是您尝试移动的数据有问题还是 MySQL Workbench.

中发生的事情

我试过google,也有类似的现象,但是没找到答案。

https://bugs.mysql.com/bug.php?id=105772

你能给我一些建议吗? 谢谢。

------------------------------------------------------------------ Starting... Create Script File...

Traceback (most recent call last): File "C:\Program Files\MySQL\MySQL Workbench 8.0 CE\workbench\wizard_progress_page_widget.py", line 71, in run self.func() File "C:\Program Files\MySQL\MySQL Workbench 8.0 CE\modules\migration_schema_creation.py", line 188, in _create_script_task self.main.plan.createTargetScript(self.main.plan.state.objectCreationParams["CreateSQLFile"]) File "C:\Program Files\MySQL\MySQL Workbench 8.0 CE\modules\migration.py", line 527, in createTargetScript grt.modules.DbMySQLFE.createScriptForCatalogObjects(path, self.migrationTarget.catalog, self.state.objectCreationParams) SystemError: UnicodeEncodeError("'charmap' codec can't encode characters in position 99-104: character maps to "): error calling Python module function DbMySQLFE.createScriptForCatalogObjects ERROR: Error during Create Script File: UnicodeEncodeError("'charmap' codec can't encode characters in position 99-104: character maps to "): error calling Python module function DbMySQLFE.createScriptForCatalogObjects ERROR: Exception in task 'Create Script File': SystemError('UnicodeEncodeError("'charmap' codec can't encode characters in position 99-104: character maps to "): error calling Python module function DbMySQLFE.createScriptForCatalogObjects')

Failed

enter image description here

如果您看到 \uFFFD,那就是替换字符 - - �

这意味着数据已经损坏,无法修复。返回数据处理过程中的某个步骤,看看 first 是什么导致了它。

另请参阅 中的“黑钻石”,以找到它可以纯粹出现在 MySQL 中的一些方式。但是,听起来像是 SQL 服务器创建的;我认为问题出在那里。

获取所涉及的任何字符的十六进制,注意 \uFFDD(UTF-8 十六进制:EFBFBD)是在内容已经损坏之后。

在 UTF-8(MySQL 的 utf8 或 utf8mb4)中,从 EAB0zz 到 ED9Ezz 的十六进制用于 Hangul(韩语)。例如,박상우 是十六进制 EBB095 EC8381 EC9AB0(减去空格)。