我有一个制表符分隔的文本文件,其中的表格包含 UNIX 行尾字符(即\n
)和 UTF-8 编码。我可以使用数据 → 导入并选择相关选项在 MS Excel 2010 中打开它,不会出现重大问题。但是,如果我使用文件 → 另存为 → 制表符分隔将其保存回文本文件,我最终会得到一个包含 DOS 行尾字符(即\r\n
)和单字节国家 Windows 编码(即“ANSI”)的文件。
当然,我可以使用外部工具恢复正确的行尾和编码,但从长远来看这看起来很麻烦。
有没有一种快速的方法可以在 MS Excel 中使用 UNIX EOL 和 UTF8(即使用导入期间使用的所有设置)保存制表符分隔的文件?
答案1
简短回答:不可以。如果不使用 VBA,Excel 就无法做到这一点。
关于不同的编码
查看这个 Stackoverflow 问题关于不同的编码(UTF-8,UTF-16,Unicode等)
Excel 可以做什么
微软 Excel能使用 ANSI 导出文本文件 (Windows-1252或者ISO-8859-1, 哪个是相当相似)或使用统一码(与 UTF-16 相同)。两者都有 DOS 样式的行尾([CR]+[LF] 或 '\r\n' 或 ASCII 十六进制代码:0x0D0A)。
Excel 无法实现的功能
微软 Excel不能导出 UTF-8 并且不能使用 UNIX 样式的换行符([LF] 或 '\n' 或 ASCII HEX 代码:0x0D)。
看此 Microsoft 知识库文章确认了这一点后,他们转而使用另一种工具(例如记事本)将 ANSI 文件保存为 UTF-8。
有关 VBA 答案,请参阅此解决方案。