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

Показать сообщение отдельно

Аватара для Fors1k

Старожил


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

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


Как я понимаю, кодировка исходного файла - ANSI.
Попробуем указать её строго вручную.
Код: Выделить весь код
cls
$pathIn  = "C:\Users\Ps-2\Desktop\123\test.bnk"
$pathOut = "C:\Users\Ps-2\Desktop\123\test_new.bnk"

$ANSI = [Text.Encoding]::GetEncoding(1251)
$old = [IO.File]::ReadAllText($pathIn, $ANSI)
$new = $old.Replace('<app-developer>0', '<app-developer>2')
[IO.File]::WriteAllText($pathOut, $new, $ANSI)

# Проверка

Start notepad $pathOut

$oldFile = Get-Content $pathIn  -TotalCount 1 -Delimiter "<?xml"
$newFile = Get-Content $pathOut -TotalCount 1 -Delimiter "<?xml"

Write-Host "До   : $oldFile"
Write-Host "После: $newFile"

Write-Host -NoNewline "Символы в начале файла идентичны? "
$oldFile -eq $newFile 
В итоге после замены в файле, который вы предоставили, ошибок в начальных символах нет. Результат в консоли:
Код: Выделить весь код
До   :  МНє8p7iy6w38emu91ikg56wrvb5axIє ‹	¶`тУлKТР8П—;Сґў9Ѕ1<?xml
После:  МНє8p7iy6w38emu91ikg56wrvb5axIє ‹	¶`тУлKТР8П—;Сґў9Ѕ1<?xml
Символы в начале файла идентичны? True

Последний раз редактировалось Fors1k, 29-04-2022 в 17:32.

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

Отправлено: 17:13, 29-04-2022 | #8