Forum: PC-Programmierung Serielle Schnittstelle "äöü" in VB.net übertragen


von Tom (Gast)


Lesenswert?

Hallo zusammen

Ich habe einen yC der Status Informationen über die Serielle
Schnittstelle sendet, die von einem in VB.Net geschriebenden Programm
empfangen werden.
Leider kann mein VB.Net Programm nur den einfachen ASCII Satz, somit
werden ä,ö,ü verschluckt. Ein Terminal Programm kann aber die
Informationen richtig anzeigen.

Gibt es einen Möglichkeit mit VB.Net den erweiterten ASCII Satz zu
empfangen?

Gruß
Tom

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Windows-Anwendungen arbeiten mit einem Zeichensatz namens ANSI bzw.
Latin-1 oder auch Codepage 1252.
Der von Dir gewünschte Zeichensatz ist der IBM-PC-Zeichensatz, Codepage
437 bzw. 850.

Mit den Betriebssystemfunktionen OemToChar bzw. CharToOem lässt sich
zwischen diesen Zeichencodierungen hin- und herwandeln.

Du könntest aber auch anhand folgender Tabelle eine einfache
Ersetzungsfunktion selber schreiben:

            Code in
Zeichen  CP437  CP1251
  Ä      0x8E   0xC4
  Ö      0x99   0xD6
  Ü      0x9A   0xDC
  ä      0x84   0xE4
  ö      0x94   0xF6
  ü      0x81   0xFC
  ß      0xE1   0xDF

Du solltest allerdings auch darauf achten, daß Du für Deine serielle
Kommunikation 8-Bit-Datenwörter verwendest ... eine 7-Bit-Übertragung
verhindert die Übertragung solcher Sonderzeichen sehr erfolgreich.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.