Используйте Microsoft Word, чтобы сохранить файл UTF-8 без спецификации

Я хотел бы использовать Microsoft Word (специально для ПК), чтобы открыть, отредактировать, а затем снова сохранить текстовый файл в формате UTF-8, но без добавления последовательности символов спецификации в начало.

Давайте продолжим и предположим, что я спрашиваю о любой версии Word после, скажем, Word 2010.

Я не вижу опции в диалоговом окне "Сохранить как", чтобы сделать это, ни в каком другом месте, которое я могу видеть.

Я могу видеть, что этот вопрос задавали множество раз о других программах, но я не вижу ничего конкретного для Word.

1 ответ

Решение

Вы не можете сделать это напрямую в Word, потому что без спецификации нет способа убедиться, что файл закодирован в UTF-8. Помните, что нет такого понятия, как обычный текст.

Несмотря на название, спецификация используется не для маркировки порядка байтов в UTF-8, а скорее как подпись. Без подписи Word будет запрашивать подтверждение кодировки каждый раз, когда вы открываете файл, потому что, если этот файл является кодовой страницей ANSI (которая по-прежнему используется в Windows по умолчанию). У него очень хорошая эвристика, и в большинстве случаев он правильно угадывается, особенно с кодировками, которые легко угадать, например, UTF-8. По моему опыту, он отлично работает даже для хитрых кодировок на разных языках.

Тем не менее, вы можете написать макрос для выполнения части сохранения вместо использования функции сохранения Word. Увидеть

В качестве альтернативы просто удалите спецификацию после сохранения в Word, используя другие инструменты, такие как PowerShell, iconv, Notepad++ или сторонний редактор. Вот скрипт PowerShell, который выполняет преобразование

$MyFile = Get-Content -Encoding UTF8 $MyPath
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($MyPath, $MyFile, $Utf8NoBomEncoding)
Другие вопросы по тегам