MySQL - MacOS 中的表数据导入向导错误“未处理的异常:‘ascii’编解码器无法解码位置 0 中的字节 0xef:序号不在范围 (128) 中”

问题描述 投票:0回答:3

我无法将任何 CSV 文件加载到 MySQL 中。使用表数据导入向导,每次进入“配置导入设置”步骤时都会弹出此错误:

“未处理的异常:‘ascii’编解码器无法解码位置 0 中的字节 0xef:序数不在范围内 (128)”

...尽管 CSV 编码为 UTF-8,并且这似乎是 MySQL Workbench 的默认编码设置。当然,我对计算机不太熟练,我只接触过 MySQL 几周。这并不总是发生在我身上。几个月前,当我参加数据库管理课程时,我对此没有任何问题。

但是,我认为这就是我的问题所在:有一次我尝试卸载 MySQL Workbench 和 Community Server 并重新安装,从那以后,每次我尝试加载数据时都会发生此错误。我什至使用了一个非常基本的测试文件,但仍然无法加载(所有列类型在 Excel 中设置为“文本”并保存为 UTF-8 CSV:

我在 MacOS 11.5.2 (Big Sur) 上使用 MySQL 8.0.28

mysql macos csv utf-8 mysql-workbench
3个回答
0
投票

案例 1,您想要

ï
(“带有分音符号的拉丁文小写字母 I”):

字符集 ASCII 不足以满足您的重音字母。您可能需要

latin1

情况2,文件的前3个字节是(十六进制)EF BB BF:

那就是“BOM”,它是文件开头的一个标记,表明它是用UTF-8编码的。但是,显然,读取它的程序不处理这种情况。

在某些情况下,您可以删除3个字节并继续;在其他情况下,您需要使用一些 UTF-8 设置来读取它。

既然你在Excel中说“文本”并保存为UTF-8 CSV”,我怀疑是情况2。但这只解决了源(Excel)问题,你可能没有足够的控制权来摆脱BOM .

我不知道哪个应用程序有“表格数据导入向导”,我无法解决问题的目标端。也许向导设置了 UTF-8 或 utf8mb4 或 utf8;其中任何一个都可以代替“ascii”工作。

抱歉,我没有完整的解释,但也许线索“BOM”或“EFBBBF”将帮助您在 Excel 或向导中找到解决方案。


0
投票

能够通过使用 MS DOS csv 和 Macintosh csv 将我的 excel 文件保存到 csv 来解决这个问题。之后,我可以通过导入向导导入我的 csv,而不会出现错误。


0
投票

我通过使用文本编辑器(如 Mac 上的 Ultraedit)打开 CSV 解决了这个问题,并在“记录为”和“编码”选项中选择了“ASCII - 预定义”参数。

© www.soinside.com 2019 - 2024. All rights reserved.