如何将带有中文字符的Excel文件导入到CSV中?
我有一个包含中文字符的数据表的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。 可能值得尝试这个输出。
编辑:此外,您可以随时在记事本中打开此Unicode输出++将其转换为UTF-8 Encoding > Convert to UTF-8 without BOM
并可能用逗号replace所有选项卡字符(使用扩展search模式下的replace对话框\t
“查找”框和“replace”框中)。
下面的方法已经过testing,用于在MongoDB中导入CSV文件,所以它应该工作:
-
在您的Excel工作表中,转至“文件”>“另存为”。
-
命名该文件,然后从“另存为types”旁边的下拉列表中selectUnicode文本(* .txt),然后单击保存。
-
使用您喜欢的文本编辑器打开unicode .txt文件,例如记事本。
-
由于我们的unicode文本文件是制表符分隔的文件,我们希望将Excel转换为CSV(逗号分隔)文件,因此我们需要用逗号replace所有的制表符。
-
select一个制表符,右键单击它并从上下文菜单中select复制,或者按下CTRL + C,如下面的屏幕截图所示。
-
按CTRL + H打开“replace”对话框,并将复制的选项卡(CTRL + V)粘贴到“查找内容”字段中。 当你这样做时,光标将向右移动,表示该标签被粘贴。 在replace为字段中键入逗号,然后单击全部replace。
-
单击文件>另存为,input文件名并将编码更改为UTF-8。 然后点击保存button。
-
在记事本的另存为对话框中直接将.txt扩展名更改为.csv,然后select保存types旁边的所有文件( 。 ),如下面的屏幕截图所示。
-
通过单击文件>打开>文本文件(.prn,.txt,.csv)打开CSV文件并validation数据是否正常。
来源于此
你可能想尝试记事本++,我怀疑记事本将支持Unicode字符。
我已经尝试了以上所有的方法,但是对于我的数据(简体中文,超过700Mb)并没有什么效果,我已经试过了Windows中文和英文系统,英文和中文excel,Windows excel似乎无法保存到utf8甚至它声称是这样做的,我指定uft8 csv保存为,但是当我使用'open sheet'来检测编码方法时,它不是uft8,也不是GB *,这是我的最终解决scheme。
(1)下载“打开表单”。
(2)正确打开它。 您可以滚动编码方法,直到您看到中文字符显示在预览窗口中。
(3)把它保存为utf-8(如果你想utf-8)。
PS:你需要找出系统中的默认编码。 据我所知,Ubuntu处理UTF8罚款。 但是Windows默认的Simplied Chinese是以GB **开始的,即使你编码为utf8,你也可以直接打开它。 在我的情况下,r无法打开我的utf-8 csv,但可以打开GB *编码。
即使你的文件非常大,这个方法也能正常工作。 一些其他的工作是谷歌表(但文件大小可以被限制)。 Notepad ++也适用于较小的文件。
有一种方法来检测编码方法,方法是打开文件并滚动编码方法,直到看到中文正确显示。