ASCII Encoding und Umlaute

Pico1184

Grünschnabel
Ich bekomm per TCP Verbindung ein Telegramm bestehend aus ASCII Zeichen (8-Bit) mit Umlauten wie z.B. ä, ü usw. übermittelt.
Wenn ich dieses nun Encode dann werden die Umlaute nicht dargestellt....sie werden mit "?" DEZ 63 ersetzt!
Wie kann ich dies umgehen Encoding mit UTF8 bringt auch nicht, da die Umlaute ebenfalls nicht dargestellt werden!

C#:
...

//Encoding in ASCII
System.Text.Decoder a = System.Text.Encoding.ASCII.GetDecoder();
...

//Daten abholen
int charLen = a.GetChars(theSockId.dataBuffer, 0, iRx, chars, 0);
//String erstellen
System.String szData = new System.String(chars);
 
Zuletzt bearbeitet von einem Moderator:
Hi.

Also der ASCII Zeichensatz besteht aus 7 Bit. Alles andere sind erweiterte ASCII Zeichensätze mit denen z.B. Umlaute dargestellt werden können.

UTF-8 funktioniert natürlich nicht, wenn es nicht in UTF-8 kodiert ist.

Wäre die Frage um welchen Zeichensatz es sich handelt? Unter Windows mit Umlauten wird es sich vermutlich um CP1252 handeln:

C#:
System.Text.Encoding.GetEncoding("cp1252")
Gruß
 
hmm sind das sogenannte Codepages
Bekomm das Telegramm von einem Automatisierungssystem daher kann ich nicht genau sagen welcher Zeichensatz es ist......weiß nur das es ASCII ist + Zusätze. Kann ich eigene Codepages definieren und diese dann als Codierung verwenden?
 

Neue Beiträge

Zurück