Wie kann ich erweiterte ASCII in einen System.String konvertieren?
Zum Beispiel: "½ " - oder ASCII-DEC-189. Wenn ich lese das Byte aus einer text-Datei die byte[] enthält den gültigen Wert, in diesem Fall 189.
Konvertierung zu Unicode-Ergebnisse in das Unicode-Ersatzzeichen 65533.
UnicodeEncoding.Unicode.GetString(b);
Konvertierung in ASCII-Ergebnisse 63 oder "?"
ASCIIEncoding.ASCII.GetString(b);
Falls dies nicht möglich ist, was ist der beste Weg, um mit diesen Daten? Ich möchte in der Lage zum ausführen von string-Funktionen wie Replace().
InformationsquelleAutor der Frage rtremaine | 2009-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Byte-189 stellt eine "½" iso-8859-1 (aka "Latin-1"), so dass die folgende ist vielleicht das, was Sie wollen:
Alle strings und chars .NETTO sind UTF-16 kodiert, so müssen Sie einen encoder/decoder zu konvertieren, alles andere, das ist manchmal ausgefallen (z.B. UTF-8 für FileStream-Instanzen), aber gute Praxis ist immer anzugeben.
Müssen Sie irgendeine form von impliziten oder (besser) explizite Metadaten liefern Sie mit, die Informationen über die Codierung.
InformationsquelleAutor der Antwort Richard
Den alten PC-8 oder Erweiterte ASCII-Zeichensatz wurde um vor IBM und Microsoft eingeführt, die Idee von Code-Seiten der PC-Welt. Dies WAR die Erweiterte ASCII - 1982. In der Tat, es war der EINZIGE Charakter, die verfügbar auf PC ' s an der Zeit ist, bis die EGA-Karte erlaubt Sie zu laden, andere Schriften zu VRAM.
War dies auch der Standard-standard-für ANSI-terminals und fast jeder BBS I gewählt bis zur in den 80er und frühen 90er Jahren verwendet diesen Zeichensatz für die Anzeige von Menüs und Boxen.
Hier ist der code wiederum 8-bit Extended ASCII in Unicode-text. Hinweis: die Schlüssel-bit-code: GetEncoding("437"). Das verwendete Code-Seite 437 zu übersetzen, die 8-bit-ASCII-text in das Unicode-Entsprechung.
InformationsquelleAutor der Antwort Tom Wilson
Es hängt davon ab, was genau der Codierung.
Es gibt keine solche Sache als "ASCII-189" - ASCII geht nur bis zur 127. Es gibt viele Codierungen, die eine 8-bit-Kodierungen Verwendung von ASCII für die ersten 128 Werte.
Du kann wollen
Encoding.Default
(das ist die Standard-Kodierung für ein bestimmtes system), aber es ist schwer zu wissen, für sicher. Wo habt Ihr die Daten her?InformationsquelleAutor der Antwort Jon Skeet
System.String[]
kann nicht speichern Zeichen mitASCII > 127
wenn Sie versuchen, die arbeiten an der erweiterten ASCII-Zeichen wie
œ ¢ ½ ¾
hier ist die Methode, es zu konvertieren in Ihre Binär-und DezimalzahlInformationsquelleAutor der Antwort Ritwik