【发布时间】:2019-10-14 23:34:38
【问题描述】:
我正在尝试将 SQL-Server 数据库迁移到 MYSQL。我收到错误
"不正确的字符串值:'\xF0\x9F\x98\x8B\xF0\x9F...'"
我正在使用 MySQL Workbench 8.0 CE 创建的批处理文件来查看错误,因为 UI 崩溃并冻结。
源表在Latin1_General_CI_AS
目标表已创建为utf8mb4_0900_ai_ci
源数据库:Mssql@DRIVER=ODBC Driver 17 for SQL Server;SERVER=localhost\SQLEXPRESS (Microsoft SQL Server)
目标数据库:Mysql@localhost:3306
还有什么我可以尝试的吗?
【问题讨论】:
-
错误很明显。你试图运行一个相当奇怪的字符串。 SQL Server 不使用此类字符串,因为它通过
nvarchar和nchar列支持Unicode (UTF16)。您可以简单地键入您想要的文本。脚本是什么样子的?那个字符串是从哪里来的? -
您是在询问迁移问题,但没有提供有关您如何尝试迁移数据或发生的任何转换的任何信息。此字符串可能是由于某些工具尝试将 UTF16 文本视为 ASCII,或者其他一些奇怪且不必要的转换最终使用转义序列而不是字符。
-
至于
unnecessary,SO 本身就是一个将文本保存在nvarchar列中的ASP.NET 应用程序。这些页面使用 UTF8 编码提供。无需特殊代码即可允许任何海报发布非 US-ASCII 字符,例如αυτό εδώ或 ²³£§¶¤¦°±。您可以在 SQL Server 中轻松地将 Unicode 文本导出为 UTF8 文件并将其加载到 MySQL。您可以使用 SQL Server 的 SSIS 将数据直接从一个数据库移动到另一个数据库。没有理由使用转义序列
标签: mysql sql-server mysql-workbench database-migration utf8mb4