johann.z
Goto Top

Umlaute im Textbox.Text Output (TextBox.Text) in VisualStudio 2019 Powershell Pro Tools

Hallo zusammen,

es hat sicher schon jemand ein Problem mit den Umlauten in einem String aus einer TextBox.Text als Quelle gehabt.
Und bestimmt eine Lösung dafür gefunden? Dafür wäre ich sehr dankbar.
Ich nutze aktuell VS 2019 mit PowerShell Pro Tolls, also Powershell 5.

Ich entnehme aus einer Texbox die Text Eigenschaft und möchte diese in einer Funktion als Parameter nutzen.
Eigentlich ganz einfache Geschichte, nur leider funktioniert das Ganze nur, wenn keine Umlaute drin sind.

Anstatt "a" wird in der GUI "ä" angezeigt und so an die Funktion weiter gereicht.

[System.Text.Encoding]::Default
IsSingleByte : True
BodyName : iso-8859-1
EncodingName : Westeuropäisch (Windows)
HeaderName : Windows-1252
WebName : Windows-1252
WindowsCodePage : 1252
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : True
IsMailNewsSave : True
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 1252

In VS unter Extras/Umgebung/Internationale Einstellungen/Sprache ist Deutsch eingestellt.

Die Form Eigenschaft "Language" ist auf (Standard) eingestellt. Die kann ich aktuell nicht ändern, weil dann der Designer-File zerschossen und die Form unbrauchbar wird (Bug). Dazu habe ich den Entwickler angeschrieben. Ob das was gebracht hätte, ist unklar.

Vielen Dank für eure Hilfe

Content-Key: 1313769659

Url: https://administrator.de/contentid/1313769659

Ausgedruckt am: 19.03.2024 um 08:03 Uhr

Mitglied: 149569
149569 27.09.2021 aktualisiert um 14:26:30 Uhr
Goto Top
Welche Kodierung hat das Skriptfile? Sowas passiert oft wenn man Skripte in der falschen Kodierung speichert.
https://docs.microsoft.com/de-de/powershell/scripting/dev-cross-plat/vsc ...
Oder auch wenn das Input-Encoding verstellt ist
[Console]::InputEncoding
Mitglied: Johann.Z
Johann.Z 27.09.2021 um 14:31:49 Uhr
Goto Top
Hallo Hacktor,

Unicode (UTF-8)

Ich habe den Beitrag etwas präzisiert:

Die Text-Eigenschaft der Textbox ist in der Form als Default auf ein String Array eingestellt, wo ein Beispiel-String drin steht, da ist ein "ä" enthalten.
Nach GUI Aufruf kann dann der String neu definiert werden.

Eigentlich ganz einfache Geschichte, nur leider funktioniert das Ganze entweder nur, wenn in der als Beispiel vordefinierten TextBox.Text Eigenschaft keine Umlaute drin sind oder man definiert den String ( TextBox.Text ) im Nachhinein, nach dem die Form aufgerufen wurde.
Dann werden auch die Umlaute richtig weiter gegeben.
Es dürfen also keine Umlaute in einer vordefinierten TextBox.Text- Eigenschaft enthalten sein.
Mitglied: 149569
149569 27.09.2021 aktualisiert um 14:38:59 Uhr
Goto Top
Unicode (UTF-8)
Würde ich nochmal genau checken.

Hier tudet das problemlos

screenshot

Was passiert wenn du nur den Code z.B. in der ISE startest oder eine normalen Powershell Konsole heraus? Dann könntest du das auf diese och so dollen "Tools" schieben.
Eigentlich braucht es für Forms nur einen Texteditor, "Tools" überflüssig face-smile.
Mitglied: Johann.Z
Johann.Z 30.09.2021 um 05:15:01 Uhr
Goto Top
Ich habe noch einmal geschaut und es wird Folgendes ausgegeben:

IsSingleByte : True
BodyName : ibm850
EncodingName : Westeuropäisch (DOS)
HeaderName : ibm850
WebName : ibm850
WindowsCodePage : 1252
IsBrowserDisplay : False
IsBrowserSave : False
IsMailNewsDisplay : False
IsMailNewsSave : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 850

Zum Tool, na ja, du kannst ja recht haben.
Allerdings bin ich kein professioneller User, die Materie bringe mir in der Freizeit bei und das Tool abstrahiert sehr viele Dinge, z.B. Designer Code schreiben.
Vielen Dank für die Antwort.
Ich werde das weiter verfolgen und mich melden, wenn ich mehr weiß.