我正在做一个项目,使用客户提供的 CSV 文件填充数据库。客户要创建电子表格,然后将其保存为要上传的 CSV,然后将其解析到数据库中。
问题是,每当客户端将 Excel 电子表格保存为 MS-DOS .csv 文件时,许多特殊字符都会转换为问号“?”(例如 ' " / 之类的符号)。但是,如果我们打开 CSV 文件并手动将每个 ? 替换为正确的字符,它就可以正常工作。
问题是数据文件非常大,我们无法合理地做到这一点,所以我希望有办法保存它。我们尝试将其导出为 Unicode 和 ASCII,但没有成功。我们还尝试上传到 google docs,然后重新保存,但是,它也会破坏这些字符。
答案1
确保您选择保存为CSV (Comma Delimited)
而不是CSV (MS-DOS)
,因为 DOS 不支持 UTF-8 字符。
答案2
我发现,在我的情况下,只有从 xlsx 格式保存为 csv 格式时才会出现丢失字符的问题。我尝试先将 xlsx 文件保存为 xls,然后再保存为 csv。确实有效。
答案3
一种可能的解决方法是将其另存为Unicode Text
(2007 版有,不确定以前的版本),将其保存为制表符分隔的文本文件。
此文件保留了我的 unicode 字符(就我而言我当时正在和亚洲角色合作) 同时生成某种带分隔符的文本文件,然后您可以通过外部工具将其转换为 csv(如果需要)。
但是,我的输入并没有在每个单元格中嵌入标签,而且我不确定该如何处理。
答案4
这个问题我已经遇到一段时间了,终于花了一些时间来解决它!我能够(似乎)通过保存为“Windows 逗号分隔 (.csv)”来修复该问题。我尝试从 .xlsx 和 .xls 进行操作,两者都可以顺利转换为 .csv。希望这能有所帮助 - 如果使用此方法出现任何问题,请告诉我。如果我在接下来的几周内发现任何问题,我会报告。