meglersmekk Skrevet 22. september 2014 Del Skrevet 22. september 2014 Hei Trenger å generere en fil med ISO-8859-1 tegnsett fra Powershell v2.0. Out-File har ikke denne encodingen som en av valgene. Ser ut som det skal kunne gå ved å bruke en .NET classe, men jeg forstår ikke hvordan. Er det noen som kan gi et eksempel her? Mvh Pål Lenke til kommentar
ahw_ Skrevet 22. september 2014 Del Skrevet 22. september 2014 (endret) Her er én måte å gjøre dette på: $encoding = [Text.Encoding]::GetEncoding("iso-8859-1") $encodedStr = $encoding.GetBytes("Æøå") [IO.File]::WriteAllBytes("test.txt", $encodedStr) Hex-dump av fila: C6 F8 E5 Endret 22. september 2014 av ahw_ Lenke til kommentar
meglersmekk Skrevet 26. september 2014 Forfatter Del Skrevet 26. september 2014 Takk for svar. Ser jo ut til å fungere for å skrive ut noen tegn, men jeg får det ikke til å fungere for mitt bruk. Jeg har en fil på DOS/Windows - ANSI (iso-8859-1) format som jeg ønsker å gjøre en liten endring på, og skrive ut igjen på samme format. Metoden din ser ut til å fjerne linjeskift og newline. Prøvde først dette: get-content $TmpUtFil| foreach-object {$_ -replace "^ ",""} | out-file $UtFil Dette gjør om filens tegnsett. Jeg kan f.eks skrive slik: get-content $TmpUtFil| foreach-object {$_ -replace "^ ",""} | out-file -encoding "utf8" $UtFil men det er jo heller ikke utf8 jeg ønsker... Hvordan kan jeg skrive i iso-8859-1 og fortsatt beholde LF CR ? Mvh Pål Lenke til kommentar
ahw_ Skrevet 26. september 2014 Del Skrevet 26. september 2014 (endret) Er du sikker på at ikke linjeskiftene blir fjernet med regex i koden din, fordi du erstatter dem med ingenting? Se forskjellen på dette og koden du viser: $_ -replace "(^) ", "$1" Siden du ikke lett kommer unna å bruke .NET-klasser, kan du like greit gjør alt slik: $encoding = [Text.Encoding]::GetEncoding("iso-8859-1") $originalContent = [IO.File]::ReadAllText("test-in.txt", $encoding) $modifiedContent = [regex]::Replace($originalContent, "(^ )", "$1", [Text.RegularExpressions.RegexOptions]::MultiLine) [IO.File]::WriteAllText("test-out.txt", $modifiedContent, $encoding) Endret 26. september 2014 av ahw_ Lenke til kommentar
meglersmekk Skrevet 26. september 2014 Forfatter Del Skrevet 26. september 2014 Takk, da forstår jeg. Nå ser det ut til å virke mye bedre Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå