Wed, 5 Jun 2019 18:45:14 +0200, w
<5cf7f199$0$17361$65785112@news.neostrada.pl>, "Grzegorz Niemirowski"
<grzegorz@grzegorz.net> napisał(-a):
> radekp@konto.pl <radekp@konto.pl> napisał(a):
> > 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".
>
> U mnie ten skrypt działa poprawnie. Na pewno te polskie litery są zakodowane
> za pomocą heksów w stylu C, rozdzielonych spacjami? Wystaw gdzieś może
> oryginalne pliki.
To poproszę o podanie kodu na przycięcie pliki do 1000 znaków (mają MB-jty).
To plik txt, ale wszelkie programy wykładają się na tych kodach.
|