Ich habe ein sehr interessantes Problem. Einer, auf den ich noch keine Antwort finden kann. der Code wie folgtC# " xC0 x80" gesendet als C0 3f ... Seltsames Problem kann die Lösung nicht herausfinden
Console.WriteLine("\xc0\x80");
Console.WriteLine(Encoding.GetEncoding(1252).GetString(new byte[] { 0xC0, 0x80 }));
Console.WriteLine(Encoding.GetEncoding(1252).GetString(Encoding.GetEncoding(1252).GetBytes("\xc0\x80")));
byte[] bt = new byte[2];
bt[0] = (byte)'\xC0';
bt[1] = (byte)'\x80';
Console.WriteLine(Encoding.GetEncoding(1252).GetString(bt));
die folgende Ausgabe erzeugt:
À?
À€
À?
À€
wenn sie an Bytes codiert unter Verwendung von 1252 Codepage "\ XC0 \ x80" erzeugt C0 3f ..
jedoch, wenn i direkt in ein Bytearray umwandeln, die Bytes sind C0 80
Vorschläge?
Auch der gleiche Code von vs in einer anderen Maschine lief, produziert À € in jeder Zeile ... Das Problem isent so sehr die Codepage, es habe eine Einstellung in vs oder in Fenstern verursacht den Nachschlag sein von meiner Standard-Codepage zu 1252.
Ich frage mich, wie Sie eine Zeichenfolge in ein Byte-Array zu werfen. –
@Darin: Mit Encoding.GetEncoding (1252). GetBytes (str). Natürlich ist das keine Besetzung, aber ich nehme an, dass es das ist, was er meinte. – Amy
@ yodaj007, dies ist nicht Casting, dies wird mit Codierung konvertieren. Ich frage nach der zweiten Methode, die das OP beschreibt, wo er sagt, ich zitiere: "Wenn ich es direkt auf ein Bytearray werfe, sind die Bytes C0 80". Ich war nur neugierig auf dieses * Casting *, da es nicht viel Sinn ergibt. –