将Excel的默认编码更改为UTF-8吗?


25

我正在使用各种工具定期为Web准备数据。一个阶段要求我在Excel中打开CSV文件,进行更改并保存文件。

有没有一种方法可以强制Excel接受UTF-8编码,并使用该编码保存其文件?


1
为了澄清,我想更改设置,以便Excel假定默认情况下输入文件为UTF-8。如下所述,LibreOffice / OpenOffice会执行此操作。
迪兹利,2015年

如果您实际上没有要处理的Unicode字符,我会考虑使用中间件将所有CSV转换为ASCII,然后在Excel中打开。
瓦西里'16

1
相关问题在这里,但不完全相同。
hhh

Answers:


15

我在“ Excel文本向导的默认字符编码”中回答了类似的问题吗?

我在更改Excel中的默认文本导入来源类型时找到了答案。

  1. 在注册表编辑器中,转到HKEY_CURRENT_USER>软件> Microsoft> Office> [此处为Excel版本-可能是此文件夹中的最高编号]> Excel>选项
  2. 右键单击右侧,然后转到“新建”>“ DWORD”
  3. 将项目命名为DefaultCPG,然后保存
  4. 右键单击DefaultCPG,然后选择“修改”
  5. 将基数设置为十进制
  6. 输入Excel向导中显示的代码(对于UTF-8,为65001)
  7. 单击确定。

就像Vasille在对该问题的评论中所说的那样,如果您的文件实际上不是UTF-8格式,则从技术上讲,您可能希望将文件中的字符转换为所需的编码,然后再在Excel中打开。但是,就我的目的而言,UTF-8可以很好地显示未损坏的字符。


3
有什么理由这样做吗?为什么这不是Excel的默认行为?---我的团队经常处理包含外来字符的数据集,我想知道是否有任何理由不对我们的每台计算机执行此操作。
user1318135

3
不幸的是,这在我的机器上不起作用。仍使用默认编码打开文件(Win 7,Office 2016)。
user1318135

8
也无法在我的系统上运行,Win 10 Office 2016
Phuah Yee Keat,

2
没有骰子。Excel的行为像以往一样愚蠢。人们希望可以通过像Excel这样成熟的软件中的用户首选项来访问这种明显的功能。
亚伦·布拉姆森

4

将excel ANSI编码更改为UTF-8的一种简单方法是在记事本中打开.csv文件,然后选择“文件”>“另存为”。现在在底部,您将看到将其编码设置为ANSI,将其更改为UTF-8,然后将文件另存为新文件,然后完成操作。


我将对此进行试验。我遇到的一个问题是以一致的编码一致地打开文件,因此在单个结果文件中无法以两种编码获取数据。然后变得很难修复。我真的希望Excel允许我有更好的选择输入文件编码的方法。
迪兹利,2015年


2

您需要使用该File > Import选项并以空白文档开始并指定UTF-8

在此处输入图片说明

但这并不是将其设置为所有文件的默认设置的最佳选择,无论如何,都无需围绕Google云端硬盘或LibreOffice旋转文件。缺省值选择得很糟糕,并且无法更改很烦人。

有关

  1. 如何在打开Excel时设置字符编码,但没有找到更改默认值的选项,这样所有文件都将以UTF-8而不是OSX中的Macintosh格式自动打开

  2. 如何将默认文件选项从 Apple.SE中的Macintosh文件选项更改为UTF-8


0

我以前解决过类似的问题。未成功,但是您可以使用LibreOffice,默认情况下为UTF-8。


LibreOffice对此非常方便。但是,有时我要运行VBA宏。感谢Lluser
Dizzley

0

有一个Excel加载项可用 在这里工作使用Unicode CSV文件,应该帮助你。

这是开发人员Jaimon Mathew的注释:

Excel将.csv文件视为文本文件,并且在正常保存时会将所有Unicode字符替换为“?”。如果要保留Unicode字符,则需要将文件另存为“ Unicode文本(* .txt)”,这是制表符分隔的文件。由于找不到任何现有的解决方案来以CSV格式保留Unicode字符,因此我认为我将通过创建Excel插件来做到这一点。

1个


0

这不是最佳解决方案,但可以选择:将Excel文件上传到Google驱动器,使用Google Tabs打开它,然后将其下载为csv文件。它为我工作。


5
这没有回答如何更改Excel文档的编码的问题。
Ramhound,2015年

当然,当您在Excel中打开CSV时,会丢失单元格格式,因此某些数字ID字符串会转换为整数。
迪兹利2015年

0

假设您有一个可用的unix外壳(Cygwin),我在csv文件的前面附加了3个字符的unicode ID(UTF-8),然后它可以很好地读入Excel,更重要的是可以使用VB Excel作为输入正确处理自动化。

UTF-8.txt

EFBBBF <<十六进制编辑为3个char文件。

cat UTF-8.txt文件到use.csv> new_file.csv


1
(1)您能描述一下这是如何/为什么吗?(2)您能确切描述如何创建此UTF-8.txt文件吗?
斯科特,

我建议使用十六进制编辑器并输入3个字符的序列。为什么有效,不知道。我通过采用现有的UTF-8 csv文件,将其重命名为txt,将其导入Excel(如在其他线程中建议的那样),使用Unicode插件(其他线程)将其保存为CSV,然后进行二进制比较来找到了解决方案。两个文件中的一个。唯一的区别是3个字符的开始顺序。
avwtp

看到这个线程为什么起作用[链接](stackoverflow.com/questions/6002256/…
avwtp '19
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.