Powershell, PS2EXE Umlaute falsch angezeigt
Hallo,
erste Kontaktaufnahme "Programmieren mit der Powershell"! Anfänger! Also auch Anfängerfragen! Ich habe mit Powershell ISE eine GUI erstellt. Auf einem Button eine Beschriftung mit Text vorgenommen. Dieser Text beinhaltet Umlaute. Jetzt ist mir Folgendes aufgefallen, habe auch noch keine Abhilfe durch Recherche gefunden.
Mein Beispiel:
1. Wenn ich das Skript ausführe, ist alles korrekt dargestellt!
2. Wenn ich das Skript mit PS2EXE umwandle, werden die Umlaute falsch dargestellt!
Mir ist bekannt, das es an der Kodierung liegt *.ps1 wird in ANSI abgespeichert. Wenn ich jetzt das Skript mit Notepad++ öffne und die Kodierung umstelle auf UTF-8 und speichere, wird das Skript wieder nach ANSI umgestellt.
Im Internet habe ich auch ein Codezeile gefunden, die in das PS Profile eingetragen werden soll. Hilft aber nicht!
Wo muss ich diese Codezeile aber in meinem Skript hinpacken oder gibt es eine andere Lösung?
Im Voraus an alle Helfenden vielen Dank!
erste Kontaktaufnahme "Programmieren mit der Powershell"! Anfänger! Also auch Anfängerfragen! Ich habe mit Powershell ISE eine GUI erstellt. Auf einem Button eine Beschriftung mit Text vorgenommen. Dieser Text beinhaltet Umlaute. Jetzt ist mir Folgendes aufgefallen, habe auch noch keine Abhilfe durch Recherche gefunden.
Mein Beispiel:
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$window = New-Object System.Windows.Forms.Form
$window.Width = 200
$window.Height = 200
$Label = New-Object System.Windows.Forms.Label
$Label.Location = New-Object System.Drawing.Size(10,10)
$Label.Text = "Hiermit kann man Löschen!"
$Label.AutoSize = $True
$window.Controls.Add($Label)
$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Size(10,60)
$Button.Size = New-Object System.Drawing.Size(150,50)
$Button.Text = "Löschen"
$Button.Add_Click({start-process diskmgmt.msc})
$window.Controls.Add($Button)
[void]$window.ShowDialog()[[image 5def84ae10970cfe1122d9f9d5f1da94]]
1. Wenn ich das Skript ausführe, ist alles korrekt dargestellt!
2. Wenn ich das Skript mit PS2EXE umwandle, werden die Umlaute falsch dargestellt!
Mir ist bekannt, das es an der Kodierung liegt *.ps1 wird in ANSI abgespeichert. Wenn ich jetzt das Skript mit Notepad++ öffne und die Kodierung umstelle auf UTF-8 und speichere, wird das Skript wieder nach ANSI umgestellt.
Im Internet habe ich auch ein Codezeile gefunden, die in das PS Profile eingetragen werden soll. Hilft aber nicht!
$PSDefaultParameterValues['*:Encoding'] = 'utf8'
Wo muss ich diese Codezeile aber in meinem Skript hinpacken oder gibt es eine andere Lösung?
Im Voraus an alle Helfenden vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1490639166
Url: https://administrator.de/contentid/1490639166
Ausgedruckt am: 25.11.2024 um 12:11 Uhr
7 Kommentare
Neuester Kommentar
Zitat von @In-der-Lernphase:
Mir ist bekannt, das es an der Kodierung liegt *.ps1 wird in ANSI abgespeichert. Wenn ich jetzt das Skript mit Notepad++ öffne und die Kodierung umstelle auf UTF-8 und speichere, wird das Skript wieder nach ANSI umgestellt.
Mir ist bekannt, das es an der Kodierung liegt *.ps1 wird in ANSI abgespeichert. Wenn ich jetzt das Skript mit Notepad++ öffne und die Kodierung umstelle auf UTF-8 und speichere, wird das Skript wieder nach ANSI umgestellt.
Kein BOM Header?
Moin,
in Notepad++ einfach "Kodierung > Konvertiere zu UTF-8-BOM" auswählen und anschließend speichern.
Noch als kleinen Tipp:
Lass besser die Finger von der ISE. Arbeite einfach komplett mit Notepad++, oder falls du unbedingt eine IDE brauchst mit Visual Studio Code.
In Notepad++ kannst du einfach unter "Ausführen > Externes Programm ausführen" folgende Zeile einfügen:
Dann auf Speichern klicken, mit Namen und Tastenkombination versehen und fortan kannst du die Skripte direkt mit Notepad++ ausführen lassen (die Skripte müssen wohl immer vor der Ausführung gespeichert sein).
Gruß Thomas
in Notepad++ einfach "Kodierung > Konvertiere zu UTF-8-BOM" auswählen und anschließend speichern.
Noch als kleinen Tipp:
Lass besser die Finger von der ISE. Arbeite einfach komplett mit Notepad++, oder falls du unbedingt eine IDE brauchst mit Visual Studio Code.
In Notepad++ kannst du einfach unter "Ausführen > Externes Programm ausführen" folgende Zeile einfügen:
powershell -NoExit -ExecutionPolicy ByPass -Command "cd -Lit '$(CURRENT_DIRECTORY)';. '.\$(FILE_NAME)'"
Gruß Thomas