Entschuldigung, wenn das irgendwo beantwortet wurde, aber wenn es so ist, konnte ich es nicht finden.Konsequente Byte-Darstellung von ungültigen Zeichen
Ich mache einige Manipulationen mit Byte-Arrays, und habe festgestellt, dass beim Konvertieren von ungültigen Zeichen (zum Beispiel das Byte 0x9C) es als "?" Interpretiert wird. Daher, wenn ich es zurück in ein Byte umwandele, kommt es als 0x3F heraus.
Mein Problem ist, dass Teile der Byte-Arrays ASCII sind, aber andere sind Prüfsummen, die ungültige Zeichen wie diese enthalten können. Ich möchte in der Lage sein, das gesamte Array für Bequemlichkeit in eine Zeichenfolge umzuwandeln. Gibt es eine Codierung, die ASCII für normale Zeichen ergibt und sicherstellen, dass das Konvertieren eines ungültigen Zeichens in eine Zeichenkette und zurück dasselbe Byte ergibt?
Es gibt immer noch Werte, die dazu führen können, dass Sie ungültige Daten erhalten. Wenn Sie ein Byte [] als String darstellen müssen, sollten Sie 'Convert.ToBase64String (' 'und' Convert.FromBase64String ('Auch wenn Sie Daten zwischen Computern' System.Text.Encoding.Default' senden wollen) verwenden Anders als von System zu System.Nehmen Sie einfach Ihre Prüfsummen und machen Sie ihr eigenes Byte [] und fügen Sie den Base64-Text von ihnen an das Ende der Zeichenfolge an. –
Standard variiert zwischen Maschinen, Benutzern und Zeit.Es ist selten die richtige Wahl, aber könnte habe die Chance, den Kontext der in der Frage beschriebenen Hin-und-Her-Transformation zu bearbeiten –
Ich sollte hinzufügen, ich fand den Standard auf meiner Maschine als System.Text.Encoding.SBCSCodePageEncoding und habe den Code geändert, um dies zu spezifizieren Es kann sehr gut noch ungültige Daten geben, aber bis jetzt funktioniert es richtig – Cobalt