Excel保存为CSV时销毁特殊字符


21

我正在开发一个项目,该项目使用客户端提供的CSV文件来填充数据库。客户端将创建电子表格,然后将其另存为要上载的CSV,然后将其解析为数据库。

问题是,每当客户端将Excel电子表格保存为MS-DOS .csv文件时,许多特殊字符都会转换为问号“?” (例如'“/”之类的符号。但是,如果我们打开CSV文件并用正确的字符手动替换每个?它可以正常工作。

问题是数据文件很大,我们无法合理地做到这一点,所以我希望有一种方法可以保存它。我们尝试以Unicode和ASCII格式导出无济于事。我们还尝试上传到谷歌文档,并重新保存,但它也打破了这些字符。


2
如果您使用的是excel 2007,则在“文件另存为”对话框中,“保存”按钮左侧会显示“工具”下拉列表。如果选择了weboption,则可以在“编码”选项卡上选择特定编码。如果有任何帮助的话请尝试

那个文本的例子是什么?
恩德兰

1
这个问题不可重复。确保数据实际上是您描述的内容,而不是某些无法在MS-DOS编码中表示的字符。
Jukka K. Korpela 2012年

Answers:


9

确保您选择保存为a CSV (Comma Delimited)而不是a CSV (MS-DOS),因为DOS不支持UTF-8字符。


5

我发现从xlsx格式保存到csv格式时,只会发生丢失的字符问题(在我的情况下)。我尝试先将xlsx文件保存到xls,然后再保存到csv。它确实有效。


这对我不起作用。我还有吗?在csv文件中
thanos.a 2016年

4

一种可能的解决方法是将其保存为Unicode Text(2007年有,不确定以前的版本),将其保存为制表符分隔的文本文件。

这个文件保留了我的unicode字符(在我的情况下,我使用的是亚洲字符),同时生成某种分隔的文本文件,然后您可以通过外部工具运行,以便在必要时转换为csv。

我的输入没有嵌入每个单元格中的选项卡,但是我不确定如何处理。


2

这对我有用:

  1. 在Excel或CSV中进行数据更正
  2. 将文件另存为Unicode文本
  3. 打开NOTEPAD
  4. 使用NOTEPAD打开刚刚保存的Unicode文件
  5. 使用光标突出显示包含单个选项卡5a的空白区域。使用“获取ID”和“请求类型”之间的空格,因为它包含一个选项卡!
  6. 点击Cnrl-C复制制表符
  7. 键入Cnlr-H以打开“替换”功能框
  8. 单击“查找内容”文本框,然后键入Cnlr-V以粘贴选项卡
  9. 单击“替换为文本”框并键入逗号
  10. 单击“替换”以对其进行一次测试。确认文件中的选项卡已替换为逗号
  11. 单击全部替换
  12. 单击取消
  13. 保存文件并退出
  14. 在Windows资源管理器中,将文件扩展名更改为.csv

1
这对我有用,使用Notepad ++。
ChrisB 2017年

2

我已经有一段时间了解这个问题,最后花了一些时间来搞清楚!我能够(似乎)通过保存为“Windows逗号分隔(.csv)”来解决问题。我从.xlsx和.xls尝试了它,两者都转换为.csv就好了。希望这会有所帮助 - 如果这个方法出现任何问题,请告诉我。如果我在接下来的几周里看到任何东西,我会报告回来。


1
欢迎来到超级用户。很高兴看到你直接回答问题。
CharlieRB 2016年

1

解:

  1. 在记事本中打开您的CSV文件(您会注意到它表示ANSI),然后在记事本中将其重新保存为UTF-8。

  2. 然后导入应该工作。但是,如果您在Excel中再次打开它并且只是保存它将无法工作,因为Excel显然无法以UTF-8本机编码。

  3. 另一种选择是在www.LibreOffice.org(免费)中使用您的CSV文件,它可以在UTF-8中正确编码(我自己也没试过)。

我遇到了类似的问题,将含有分数的csv产品导入WooCommerce,由于“?”而被拒绝 错误字符。这是因为CSV文件未以UTF-8编码。但是,即使在使用UTF-8编码在Excel中保存CSV文件后,它仍然无法正常工作。

在浏览多个论坛之后,虽然Excel提供了编码为UTF-8的选项 - 当SAVING为CSV时,Excel会自动将其转换回ANSI,即使您选择了UTF-8。


0

即使我在下载.csv格式的日语术语时遇到了特殊字符的问题。但是当我以文本格式(制表符分隔)保存.csv文件时,日语字符完全填充。然后我只是从文本文件中复制数据并粘贴在电子表格中。工作得很好!!!

谢谢,Vaishakh


这并没有提供问题的答案。要对作者进行批评或要求澄清,请在帖子下方留言 - 您可以随时评论自己的帖子,一旦您有足够的声誉,您就可以对任何帖子发表评论
Ramhound 2015年

0

找到了有史以来最好的解决方案:http//woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html

来自链接:

1单击开始菜单

2 - 选择控制面板

3 - 在经典模式下查找区域和语言选项,或在控制面板窗口右上角的搜索栏上键入其名称

4 - 单击高级选项卡,然后单击区域设置

5 - 单击波斯语或阿拉伯语或您想要用Excel保存为CSV的所需UTF-08编码程序


woshka.com不再是有效的网址,目前它是一个停放的域名。
克雷格伦敦

0
  1. 下载并安装适用于Excel的Unicode CSV Addin。
  2. 从新的“Unicode CSV”菜单中保存csv,如下图所示。

在此输入图像描述


0

为了™我找到了解决方案。在.xlsx文件中,将所有“™”替换为“&tr-ade;”。删除 - 替换为。将文件另存为.csv,一切都完成了。希望它对你有用。


0

在Mac电脑上,这对我有用。

在excel上选择另存为然后从下拉列表中选择windows逗号分隔(CSV)。

它只是工作!!!


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.