vb.net Zeichensatz
-
11-10-2019 - |
Frage
Laut MSDN vb.net verwendet diese erweiterten Zeichensatz . Nach meiner Erfahrung nutzt es tatsächlich so aus:
- Was bin ich? Warum tut sie sagen, dass es das man benutzt und verwendet die andere?
- Bin ich etwas falsch zu machen?
- Gibt es irgendeine Art von Konvertierungs-Werkzeug auf den ursprünglichen Zeichensatz?
Lösung
Dieses Verhalten ist in der Dokumentation des Chr
Befehl :
Der Rückgabewert ist abhängig von der Codepage für den aktuellen Thread, die in der ANSICodePage Eigenschaft der Textinfo-Klasse im Namespace System.Globalization enthalten ist. Sie können ANSICodePage erhalten durch System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage angeben.
die Ausgabe von Chr
für Werte größer also als 127 ist systemabhängig. Wenn Sie reproduzierbare Ergebnisse wollen, legen Sie die gewünschte Instanz Encoding
durch den Aufruf Encoding.GetEncoding (String ) , verwenden Sie dann Encoding.GetChars (Byte ()) Ihre numerischen Werte in Zeichen umwandeln.
Wenn Sie geht eine Ebene höher in der verknüpften Diagramm in der Frage, werden Sie sehen, dass sie behaupten nicht, dass diese Tabelle immer ist der Ausgang des Chr
Befehl:
Die Zeichen, die in Windows erscheinen über 127 auf der ausgewählten Schrift ab.
Die Diagramme in diesem Abschnitt zeigen den Standardzeichensatz für eine Konsolenanwendung.
Ihre Anwendung ist eine Windows Forms-Anwendung, nicht eine Konsolenanwendung. Auch in der Konsole kann der verwendete Zeichensatz geändert werden (zum Beispiel durch den chcp
-Befehl), daher das Wort „default“.
Für detaillierte Informationen über die verwendeten Codierungen in .net, ich den folgenden MSDN-Artikel empfehlen:
Andere Tipps
Der erste Zeichensatz-Codepage 437 (CP437), die zweite sieht aus wie Codepage 1252 (CP1252) auch bekannt als Windows-Latin-1.
Ich würde vermuten, VB.Net einfach ist Kommissionierung die Standardcodierung für den PC auf.
Wie haben schreiben Sie das alles? Da in der Regel, wenn Sie eine Ausgabe-Stream-Funktion verwenden, können Sie die Codierung geht mit ihm angeben.
Edit: Ich weiß, das ist nicht C #, aber man kann die Idee sehen ...
würden Sie haben die Kodierung Ihrer Filestream zu setzen, um so etwas wie dies zu tun: Einstellen der Codierung bei der Erstellung von Filestream