Excel:将文本导入向导的默认编码(文件来源)更改为 UTF-8(65001:Unicode)

Diz*_*ley 36 character-encoding utf-8 microsoft-excel

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

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

小智 18

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

我在Changing default text import origin type in Excel 中找到了答案。

  1. 关闭 Excel(如果它已打开)。
  2. 打开注册表编辑器
  3. 导航到HKEY_CURRENT_USER ?软件 ?微软?办公室 ??? ? Excel ? 选项,在哪里??是您的 Office 版本,很可能是您在那里看到的最大数字。
  4. 右键单击右侧的空白区域并选择新建?双字
  5. 将项目命名为DefaultCPG,然后按 Enter 保存。
  6. 右键单击DefaultCPG并选择Modify
  7. 基数设置为十进制
  8. 对于Value data,输入65001以将默认值设置为 UTF-8。对于其他一些编码,请使用代码页标识符,您可以在 Excel 的文本导入向导或此列表中找到该标识符。
  9. 单击“确定”

就像 Vasille 在对这个问题的评论中所说的那样,如果您的文件实际上不是 UTF-8 格式,您可能需要在技术上将文件中的字符转换为您想要的编码,然后再在 Excel 中打开。不过,就我而言,UTF-8 在显示未损坏的字符方面做得足够好。

不工作?确保将 Base 设置为 Decimal(步骤 7)。

显示将基数设置为十进制的 Edit DWORD 32 位值的屏幕截图

  • 也不适用于我的,Win 10 Office 2016 (9认同)
  • 有什么理由*不*这样做吗?为什么这不是 Excel 的默认行为?--- 我的团队经常处理包含外来字符的数据集,我想知道是否有任何理由不在我们的每台机器上执行此操作。 (7认同)
  • 不幸的是,这在我的机器上不起作用。文件仍以默认编码打开(Win​​ 7、Office 2016)。 (5认同)
  • 没有骰子。Excel 的行为一如既往的愚蠢。人们会期望通过用户偏好在像 Excel 这样成熟的软件中访问这样一个明显的功能。 (4认同)

Mou*_*diz 6

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


小智 5

Microsoft Office 软件似乎需要字节顺序标记

  1. 使用 Notepad++,使用菜单转换 CSV:编码 -> 转换为 UTF8-BOM。

  2. 使用sedUnix 实用程序,可在cmderGit for Windows 中使用。请参阅将 BOM 添加到 UTF-8 文件

    sed -i '1s/^/\xef\xbb\xbf/' file.csv
    
    Run Code Online (Sandbox Code Playgroud)

  • 用 Excel 2016 测试
  • 这就是 avwtp 在他们的回答中的意思。