Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Получить на выходе файл в кодировке UTF8

Ответить
Настройки темы
PowerShell - Получить на выходе файл в кодировке UTF8

Старожил


Сообщения: 216
Благодарности: 15

Профиль | Отправить PM | Цитировать


Доброго времени суток всем!
Давно пытался разобраться с этим вопросом, да как-то особой надобности не было.
При работе с любыми текстовыми файлами после их сохранения получаем файл в кодировке UTF8-BOM. Эту кодировку не распознают некоторые программы.
Может кто сталкивался с таким, подскажите, пожалуйста, как в версии 5.1 получить на выходе файл в кодировке UTF8 без BOM ?

Отправлено: 20:24, 01-02-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6530
Благодарности: 1483

Профиль | Отправить PM | Цитировать


https://stackoverflow.com/a/5596984

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:00, 01-02-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Uragan66:
после их сохранения »
Это как? Покажите пример кода.

Цитата Uragan66:
как в версии 5.1 получить на выходе файл в кодировке UTF8 без BOM ? »
Например, так:
Код: Выделить весь код
$oUTF8woBOM = New-Object -TypeName 'System.Text.UTF8Encoding' -ArgumentList $False
[System.IO.File]::WriteAllText('C:\Мои проекты\0335\Sample.txt', 'Мама мыла раму', $oUTF8woBOM)
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:05, 01-02-2021 | #3


Старожил


Сообщения: 216
Благодарности: 15

Профиль | Отправить PM | Цитировать


Цитата Iska:
Покажите пример кода »
да код то любой может быть, к примеру:
Код: Выделить весь код
$d = '#EXTM3U'
$url = 'https://api.acestream.me/all?api_version=1.0&api_key=test_api_key'
[System.Net.ServicePointManager]::SecurityProtocol = @("Tls12","Tls11","Tls","Ssl3")
$aslist = (Invoke-RestMethod -UseBasicParsing -Uri $url) | ForEach{$('#EXTINF:-1,'+$_.name;'http://127.0.0.1:6878/ace/getstream?infohash='+$_.infohash)}
Set-Content .\acestream.m3u -Encoding utf8 -Value $d,$aslist

Отправлено: 21:47, 01-02-2021 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Uragan66, ну, так это тоже не «сохранение файла».

Код: Выделить весь код
$d = '#EXTM3U'
$url = 'https://api.acestream.me/all?api_version=1.0&api_key=test_api_key'
[System.Net.ServicePointManager]::SecurityProtocol = @("Tls12","Tls11","Tls","Ssl3")

$aslist = `
    (Invoke-RestMethod -UseBasicParsing -Uri $url) |`
        ForEach-Object -Process {
            "#EXTINF:-1,$($_.name)"
            "http://127.0.0.1:6878/ace/getstream?infohash=$($_.infohash)"
        }
$oUTF8woBOM = New-Object -TypeName 'System.Text.UTF8Encoding' -ArgumentList $False
[System.IO.File]::WriteAllText('C:\Мои проекты\0335\acestream.m3u', ($d, ($aslist -join "`r`n") -join "`r`n"), $oUTF8woBOM)
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:53, 01-02-2021 | #5


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Может чего не знаю в этой жизни, но BOM - это ж всего лишь метка последовательности байтов и для UTF-8 она представлена тремя байтами \xEF\xBB\xBF.

Отправлено: 23:13, 01-02-2021 | #6


Старожил


Сообщения: 216
Благодарности: 15

Профиль | Отправить PM | Цитировать


Iska, спасибо большое! Код работает ОК. При таком варианте путь для создания файла должен быть только абсолютным, я правильно понял ?
Цитата Iska:
это тоже не «сохранение файла» »
да, всё верно, это я сразу неправильно написал... Сорри

Отправлено: 23:15, 01-02-2021 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Uragan66:
При таком варианте путь для создания файла должен быть только абсолютным, я правильно понял ? »
Да нет, насколько я полагаю. Укажете относительный (как в Вашем примере) — будет браться относительно текущего каталога (не относительно скрипта!). Хотя я и не проверял.

Отправлено: 23:18, 01-02-2021 | #8


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата Uragan66:
Сорри
Повелительное наклонение глагола "сорить" пишется с одной "р". И да, для чего Iska нужно сорить?

Отправлено: 23:19, 01-02-2021 | #9


Старожил


Сообщения: 216
Благодарности: 15

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
BOM - это ж всего лишь метка последовательности байтов »
да, это конечно так. Но, к примеру, некоторые скрипты (скраперы, написанные на lua) плеера SimpleTV не распознают UTF8-BOM

Отправлено: 23:20, 01-02-2021 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Получить на выходе файл в кодировке UTF8

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Java - Вывод массива в файл в unix формате и utf-8 кодировке blackeangel Программирование и базы данных 3 31-05-2017 07:33
Мультимедиа - видеоредактор Free Video Dub. Что за дела ? на выходе файл без звука Stivensson Видео и аудио: обработка и кодирование 8 10-05-2014 22:52
CMD/BAT - Windows 7 (x86) Сохраняет в кривой кодировке txt файл из консоли MarShaLL22 Скриптовые языки администрирования Windows 6 05-04-2014 19:41
[решено] Создание и запись в файл в кодировке 1200 (UTF 16 LE) eus_deus AutoIt 5 08-09-2013 00:01
VBS/WSH/JS - [решено] Как создать файл в кодировке UTF-8 с помощью VBScript? Zeron Скриптовые языки администрирования Windows 2 30-05-2011 03:50




 
Переход