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

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

Ответить
Настройки темы
PowerShell - [решено] вывод кодировки

Ветеран


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

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


Здравствуйте, есть скрипт, который извлекает ссылки из txt файлов, в результате выводится текстовый файл в кодировке utf 16 le..., можно ли выводить его в кодировке utf 8 ?

Код: Выделить весь код
Select-String 'C:\work\POSTS\random\*.txt' -Pattern "^\[url\](.+)\[/url]\[/b]"| Foreach {$_.Matches.Groups[1].Value} > 'C:\work\Scripts\Create random posts\extract links.txt'
если делаю так, то txt выводится с кодировкой utf 8, но пустой

Код: Выделить весь код
Select-String 'C:\work\POSTS\random\*.txt' -Pattern "^\[url\](.+)\[/url]\[/b]"| Foreach {$_.Matches.Groups[1].Value} > 'C:\work\Scripts\Create random posts\extract links.txt' -Encoding "UTF8"

Отправлено: 11:03, 26-12-2023

 

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

fascinating rhythm


Moderator


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

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


Код: Выделить весь код
"fff" > "C:\temp\fff.txt"
замените на
Код: Выделить весь код
"fff" |Out-File "C:\temp\fff.txt" -Encoding utf8

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

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

Отправлено: 12:52, 26-12-2023 | #2



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

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


Ветеран


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

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


Спасибо. Сделал так:

Код: Выделить весь код
Select-String "C:\work\POSTS\random\*.txt" -Pattern "^\[url\](.+)\[/url]\[/b]"| Foreach {$_.Matches.Groups[1].Value} |Out-File "C:\work\Scripts\Create random posts\extract links.txt" -Encoding UTF8
заглянул в файл в блокнотике, кодировка "utf8 со спецификацией".. в блокнотике нормально отображается.. но я этот файл считываю в delphi функцией
Код: Выделить весь код
memo2.Lines.LoadFromFile('C:\Work\Scripts\Create random posts\extract links.txt');
раньше с кодировкой utf16 le в delphi ничего не выводило, сейчас все выводит, но почему то перед всем текстом есть такое

Код: Выделить весь код

Если я пересохраняю блокнот (руками) в utf8, то такой файл в delphi нормально считывается. Почему файл сохраняется в "utf8 со спецификацией", а не просто в "utf8" ?
посмотрел скрипт через блокнот и исходный файл.. они все в "utf8".

Отправлено: 14:04, 26-12-2023 | #3


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

fascinating rhythm


Moderator


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

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


Проще всего установить в систему Powershell 7 и выполнять скрипты через него (pwsh -file "filename.ps1"), и в кодировке использовать
Код: Выделить весь код
-Encoding UTF8NoBOM
Или подбирать альтернативу в текущей версии:
https://stackoverflow.com/questions/...ithout-the-bom

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

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

Отправлено: 14:21, 26-12-2023 | #4


Ветеран


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

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


В общем сделал так:

Код: Выделить весь код
Select-String "C:\work\POSTS\random\*.txt" -Pattern "^\[url\](.+)\[/url]\[/b]"| Foreach {$_.Matches.Groups[1].Value} |Out-File 'C:\work\Scripts\Create random posts\extract links1.txt' 
Clear-Content "C:\Work\Scripts\Create random posts\extract links.txt"
Get-Content -Path "C:\Work\Scripts\Create random posts\extract links1.txt" | Add-Content -Path "C:\Work\Scripts\Create random posts\extract links.txt"
Remove-Item "C:\Work\Scripts\Create random posts\extract links1.txt"
глупо, но теперь файл "extract links.txt" в кодировке и delphi его нормально читает, что и требовалось

Отправлено: 15:51, 26-12-2023 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - кодировки morebeauty Microsoft Windows 7 1 18-06-2014 12:40
DLE Вывод заголовков новостей в одной колонке и вывод полной новости на своей страниц AKBAHABT Вебмастеру 0 21-04-2014 17:51
кодировки romez777 Программное обеспечение Linux и FreeBSD 7 08-03-2007 05:49
Кодировки Protsko Программное обеспечение Linux и FreeBSD 20 10-08-2006 11:08




 
Переход