Войти

Показать полную графическую версию : [решено] Изменение кодировки кириллицы


Akhmad
26-01-2018, 12:51
Здравствуйте!
https://github.com/3komma14/Guard/blob/master/Replace-FileString.ps1

Использовал этот скрипт, чтобы изменить адрес сервера, без изменения учетных записей пользователей в текстовом файле. Как назло, учетки прописаны кириллицей (на русском). И после работы скрипта текст появляется в виде вопросительных знаков. Менял кодировки, результата никакого - или крякозябры, или вопросительные знаки

Заранее спасибо

Kazun
26-01-2018, 13:04
Кодировка файла до и после изменения должна быть одна.

Replace-FileString.ps1 "Тест" "Прошел" tree.txt -Overwrite -Encoding UTF8

* Файл tree.txt сохранен в кодировке UTF8, после изменения кодировка должна сохраняться, указываю UTF8

Akhmad
26-01-2018, 13:39
Как я понял, в исходном файле Win1251. Значит ли это, что надо перевести сначала в utf8, а после проведенных изменений вернуть в Win1251? Правильным будет, наверное, вложить и сам файлик

Kazun
26-01-2018, 13:53
Можно и так, но проще изменить две строчки в скрипте:

$encodings = @("ASCII","BigEndianUnicode","Unicode","UTF32","UTF7",
"UTF8","Default")

$text = [IO.File]::ReadAllText($file.FullName,[Text.Encoding]::$Encoding)

Replace-FileString.ps1 "Гость" "Тест" Profiles.txt -Overwrite -Encoding Default

Akhmad
30-01-2018, 07:10
Kazun, спасибо большое, все получилось. Но, видимо придется отказаться от этой затеи. Дело в том, что в зависимости от компьютера меняется папка профиля пользователя. Думал использовать $Home, но скрипту нужна именно C$. В общем, тут то я и сдался )) Еще раз спасибо за помощь




© OSzone.net 2001-2012