Используйте 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)