我有一个带有包含中文字符的数据表的Excel文档.我正在尝试将此Excel电子表格导出为CSV文件以导入MySQL数据库.
但是,当我将Excel文档另存为CSV文件时,记事本会将生成的CSV文件的中文字符显示为问号.导入MySQL会保留问号,完全忽略原始汉字的内容.
我怀疑这可能与使用带有UTF-8编码的Excel有关.谢谢你的帮助!
据我所知,Excel不会以任何Unicode编码保存CSV文件.我最近有类似的问题尝试使用£符号将文件导出为CSV.我的好处是可以完全使用其他工具.
我的Excel 2010版本可以以Unicode格式导出File > Save As > Unicode Text (.txt)
,但输出是制表符分隔的UCS-2编码文件.我根本不知道MySQL,只是简单地看一下规范,它似乎处理制表符分隔的导入和UCS-2.尝试此输出可能值得.
编辑:此外,您可以随时在Notepad ++中打开此Unicode输出,将其转换为UTF-8 Encoding > Convert to UTF-8 without BOM
并可能用逗号替换所有选项卡字符(在"扩展搜索"模式下,\t
在"查找"框和,
"替换"框中使用"替换"对话框.)
以下方法已经过测试并用于在MongoDB中导入CSV文件,因此它应该可以工作:
在Excel工作表中,转到"文件">"另存为".
命名该文件,然后从"另存为类型"旁边的下拉列表中选择"Unicode文本(*.txt)",然后单击"保存".
使用首选的文本编辑器打开unicode .txt文件,例如记事本.
由于我们的unicode文本文件是制表符分隔文件,我们想将Excel转换为CSV(逗号分隔)文件,我们需要用逗号替换所有选项卡.
选择一个制表符,右键单击它并从上下文菜单中选择"复制",或者只需按下CTRL + C,如下面的屏幕截图所示.
按CTRL + H打开"替换"对话框,然后将复制的选项卡(CTRL + V)粘贴到"查找内容"字段中.执行此操作时,光标将向右移动,表示已粘贴选项卡.在"替换为"字段中键入逗号,然后单击"全部替换".
单击文件>另存为,输入文件名并将编码更改为UTF-8.然后单击"保存"按钮.
在记事本的"另存为"对话框中直接将.txt扩展名更改为.csv,然后选择" 保存类型"旁边的" 所有文件(.)",如下面的屏幕截图所示.
通过单击文件>打开>文本文件(.prn,.txt,.csv)从Excel打开CSV文件,并验证数据是否正常.
来源于此