Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

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 av ahw_
Lenke til kommentar

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

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 av ahw_
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...