Mat
Aktives Mitglied
Hatte eine HTML-Datei im Terminal erstellt, um lokale Requests zu testen.
Allerdings sah ich dann das hier im Terminal:
Dachte erst, ich hab's vielleicht aus Versehen in Notepad geöffnet.. aber nein.. das passierte jedes Mal.
Tests
Erstmal redirect in eine Datei, wie ein normaler Mensch:
Was ist das denn? Achja, UTF-16LEL im PowerShell-Terminal.
Das geht mir langsam auf den Sack, aber kein Problem!
Na, dann halt Out-File:
Oh, das wird wohl exakt so ausgeführt, wenn man den
Gut zu wissen.
Na, dann vielleicht Out-File mit UTF-8:
Wie, was, ist das ein BOM? In UTF8???
Das ergibt keinen Sinn.
Was ist mit New-Item:
Na geht doch.
Aber was macht New-Item anders? Vielleicht benutzt es immer ASCII?
Nee, obwohl das Terminal die Zeichen nicht anzeigen kann, wird eine UTF-8 enkodierte Datei erzeugt.
Fazit
Ich will einfach nur, dass beim Rumfummeln im Terminal Dateien mit sauberem UTF8 oder ASCII initialisiert werden.
Wenn Editoren und IDEs die Dateien öffnen, übernehmen sie sonst einfach das falsche Encoding und es fällt mir zu spät auf.
Ich meine irgendwo gelesen zu haben, dass geplant ist, das Encoding im Powershell-Terminal in den nächsten Versionen zu vereinfachen.
Aber kann man bis dahin Abhilfe mit einer Konfiguration schaffen? Die könnte ich mir dann ins PSProfil schreiben.
Allerdings sah ich dann das hier im Terminal:
Code:
Invoke-WebRequest -UseBasicParsing -Uri http://localhost:12345 -Method GET
StatusCode : 200
StatusDescription : OK
[...]
RawContent : HTTP/1.1 200 OK
Host: localhost:12345
Connection: close
Content-Type: text/html; charset=UTF-8
Date: Mon, 18 May 2020 21:37:44 GMT
X-Powered-By: PHP/7.4.6
��<!DOCTYPE html>
<...
Tests
Erstmal redirect in eine Datei, wie ein normaler Mensch:
Code:
"abc" > dings.txt
Get-Content -Encoding Byte .\dings.txt | Format-Hex
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 FF FE 61 00 62 00 63 00 0D 00 0A 00 .þa.b.c.....
Das geht mir langsam auf den Sack, aber kein Problem!
Na, dann halt Out-File:
Code:
"abc" | Out-File dings.txt
PS C:\Users\mat_h> Get-Content -Encoding Byte .\dings.txt | Format-Hex
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 FF FE 61 00 62 00 63 00 0D 00 0A 00 .þa.b.c.....
>
-Redirect benutzt.Gut zu wissen.
Na, dann vielleicht Out-File mit UTF-8:
Code:
"abc" | Out-File -Encoding utf8 dings.txt
Get-Content -Encoding Byte .\dings.txt | Format-Hex
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 EF BB BF 61 62 63 0D 0A abc..
Das ergibt keinen Sinn.
Was ist mit New-Item:
Code:
"abc" | New-Item .\dings.txt
Get-Content -Encoding Byte .\dings.txt | Format-Hex
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 61 62 63 abc
Aber was macht New-Item anders? Vielleicht benutzt es immer ASCII?
Code:
"äöüß🤷♂️👌" | New-item .\dings.txt
Get-Content -Encoding Byte .\dings.txt | Format-Hex
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 C3 A4 C3 B6 C3 BC C3 9F F0 9F A4 B7 E2 80 8D E2 äöüÃð¤·ââ
00000010 99 82 EF B8 8F F0 9F 91 8C ï¸ð
Fazit
Ich will einfach nur, dass beim Rumfummeln im Terminal Dateien mit sauberem UTF8 oder ASCII initialisiert werden.
Wenn Editoren und IDEs die Dateien öffnen, übernehmen sie sonst einfach das falsche Encoding und es fällt mir zu spät auf.
"bla" > datei.txt
scheint intern den gleichen Mechanismus zu verwenden, wie "bla" | Out-File datei.txt
. Vielleicht ist es auch nur ein Alias dafür.New-Item
scheint das zu leisten, was ich brauche. Allerdings wäre es toll, wenn ich "bla" > datei.txt
verwenden könnte, damit ich bei Bash und Powershell die gleiche Syntax hab.Ich meine irgendwo gelesen zu haben, dass geplant ist, das Encoding im Powershell-Terminal in den nächsten Versionen zu vereinfachen.
Aber kann man bis dahin Abhilfe mit einer Konfiguration schaffen? Die könnte ich mir dann ins PSProfil schreiben.
Zuletzt bearbeitet: