Windows 10 64-бит. Powershell 5.1 и 7r c .1
Используйте PowerShell для преобразования документов Microsoft Word в HTML 4/5.
HTML 4 и 5 документов должны быть сохранены с использованием формата кодировки символов UTF-8. PowerShell меньше версии 6, по умолчанию формат кодировки символов - UTF-8-BOM. <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
не имеет никакого отношения к тому, в какой кодировке сохранен документ.
У вас есть как минимум три задания:
- Заменить
charset=windows-1252
на charset=UTF-8
- Сохраните ваши документы, используя формат кодировки символов UTF-8.
- Проверьте выходные данные на наличие ошибок.
Используйте выбранный вами сценарий преобразования. Мне нравится Convert-WordDocument.ps1 Томаса Стенецки для преобразования текстовых документов с PowerShell. Как и большинству сценариев преобразования, требуется Apache OpenOffice ~ v4.1.7 или ~ Microsoft Word 12? (Томас говорит Слово 16) быть установленным на месте. Он преобразует документ Word 2003 объемом 5 МБ с 16 изображениями в html менее чем за двенадцать секунд.
При необходимости измените метаэлемент http-equiv
:
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">`
на
<meta http-equiv=Content-Type content="text/html; charset=UTF-8"> for HTML 4 documents
или
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
до
<meta charset="UTF-8"> for HTML 5 documents.
Карта сайта, которую я создал 012420 на xml -sitemaps.com, использовала оба.
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
Сохранить / Создайте документ, используя формат кодировки символов UTF-8.
То, что работает в Powershell 5.1, может быть проще в PowerShell 6 или>. Прочитайте ссылки ниже. Более поздние версии PowerShell по умолчанию используют кодировку символов UTF-8.
Powershell 5.1:
# without overwriting. UTF-8 character encoding format.
$source = (gc $env:userprofile\Desktop\source.html) -replace "charset=windows-1252", "charset=UTF-8"
$output = "$env:userprofile\Desktop\output.html"
[IO.File]::WriteAllLines($output, $source)
PowerShell 7r c .1
# without overwriting. UTF-8 character encoding format.
(gc $env:userprofile\Desktop\source.html) -replace "charset=windows-1252", "charset=UTF-8" | out-file -force $env:userprofile\Desktop\output.html
# with overwriting. UTF-8 character encoding format.
(gc $env:userprofile\Desktop\source.html) -replace "charset=windows-1252", "charset=UTF-8" | out-file -force $env:userprofile\Desktop\source.html
Пакетное преобразование с PowerShell 7r c .1:
# with overwriting. UTF-8 character encoding format.
foreach ($i in ls -name "$env:userprofile\Desktop\*.html")
{
(gc "$env:userprofile\Desktop\$i") -replace "charset=windows-1252", "charset=UTF-8" | out-file -force "$env:userprofile\Desktop\$i"
}
Это должно правильно отображать ваши специальные символы.
Понимание кодировки файла
HTML Charset - W3Schools
Объявление кодировок символов в HTML
HTML http-эквивалент атрибута
Использование PowerShell для записи файла в UTF-8 без спецификации
Общие сведения о кодировке файлов2
Общие сведения о кодировке и изменении по умолчанию то же самое в PowerShell
Какая версия powershell у вас есть $PSVersionTable.PSVersion
Всегда объявляйте кодировку вашего документа, используя метаэлемент с атрибутом charset. Объявление должно полностью помещаться в первые 1024 байта в начале файла, поэтому лучше помещать его сразу после открывающего тега заголовка. Как найти первые 1024 байта файла. html в Windows 10 64-бит? Загрузите http://unxutils.sourceforge.net/UnxUpdates.zip и используйте head -c 1024 myfilenamehere.html
Ничего из перечисленного не сработало, но их следует прочитать.
Изменение выходной кодировки PowerShell по умолчанию на UTF-8
Изменение кодировки исходных файлов и развлечения с PowerShell
Преобразование документов Word с помощью PowerShell
Как преобразовать документ Word в другие форматы использование PowerShell
Сохранение документа Word как HTML
Преобразование документа Word в текстовый файл с использованием powershell