使用 Microsoft Word 保存不带 BOM 的 UTF-8 文件

使用 Microsoft Word 保存不带 BOM 的 UTF-8 文件

我想使用 Microsoft Word(特别是在 PC 上)打开、编辑然后再次保存 UTF-8 格式的纯文本文件,但不在开头添加 BOM 字符序列。

我们继续假设我询问的是有关 Word 2010 之后的任何版本的问题。

我在“另存为”对话框中没有看到执行此操作的选项,在其他任何地方也没有看到。

我可以看到这个问题在其他程序中被问过很多次,但我没有看到任何特定于 Word 的问题。

答案1

您无法直接在 Word 中执行此操作,因为没有 BOM,就无法确保文件采用 UTF-8 编码。请记住根本不存在纯文本。

尽管名称如此,BOM 并非用于 UTF-8 中的字节顺序标记,而是用作签名。如果没有签名,Word 会要求您确认编码每次打开文件时因为如果文件是 ANSI 代码页(这仍然是 Windows 中的默认代码页),该怎么办?它具有非常好的启发式方法,大多数时候都能猜对,尤其是对于像 UTF-8 这样容易猜到的编码。根据我的经验,即使对于各种语言的棘手编码,它也能很好地工作

也就是说,您可以编写宏来完成保存部分,而不是使用 Word 的保存功能。请参阅

或者,只需在 Word 中保存后使用其他工具(如 PowerShell、iconv、Notepad++ 或第三方编辑器)删除 BOM 即可。以下是执行转换的 PowerShell 脚本

$MyFile = Get-Content -Encoding UTF8 $MyPath
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($MyPath, $MyFile, $Utf8NoBomEncoding)

相关内容