Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

[WINNT] PowerShell i "string.replace"

To: winnt@man.lodz.pl
Subject: [WINNT] PowerShell i "string.replace"
From: "radekp@konto.pl" <radekp@konto.pl>
Date: Wed, 05 Jun 2019 11:20:48 +0200
Mam plik tekstowy (inserty do mysql) ze skopanymi polskimi znakami.
Wymyśliłem, że ogarnę to powershellem, ale "hjuston mamy problem".

Polskie znaki są zastąpione przez 4-5 znaków takich jak wynika ze skrytpu
poniżej.

$configFiles = Get-ChildItem . *.sql -rec
foreach ($file in $configFiles)
{
    (Get-Content $file.PSPath) |
    Foreach-Object { $_ -replace "0xC3 0x84 0xE2 0x80 0xA6", "ą" } |
    Foreach-Object { $_ -replace "0xC3 0x84 0xE2 0x80 0xA1", "ć" } |
    Foreach-Object { $_ -replace "0xC3 0x84 0xE2 0x84 0xA2", "ę" } |
    Foreach-Object { $_ -replace "0xC3 0x85 0xE2 0x80 0x9A", "ł" } |
    Foreach-Object { $_ -replace "0xC3 0x83 0xC2 0xB3", "A" } |
    Foreach-Object { $_ -replace "0xC3 0x85 0xE2 0x80 0x9E", "ń" } |
    Foreach-Object { $_ -replace "0xC3 0x85 0xE2 0x80 0xBa", "ś" } |
    Foreach-Object { $_ -replace "0xC3 0x85 0xE2 0xBC 0x65 0x6A", "ż" } |

    Set-Content $file.PSPath -Encoding UTF8
pause
}
pause


Ale nie działa poprawnie, "0xC3 0x83 0xC2 0xB3" zamienia mi na ciąg hex "c4 82
c2 83 c3 82 c5 82 77".


<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>