Ich verwende den folgenden Code, um eine Textdatei zu lesen, die fremde Zeichen enthält, die Datei ist ANSI codiert und sieht gut im Editor aus. Der folgende Code funktioniert nicht. Wenn die Dateiwerte gelesen und im Datagrid angezeigt werden, erscheinen die Zeichen als Quadrate. Könnte es anderswo ein anderes Problem geben?C# Hilfe beim Lesen von fremden Zeichen mit StreamReader
StreamReader reader = new StreamReader(inputFilePath, System.Text.Encoding.ANSI);
using (reader = File.OpenText(inputFilePath))
Dank
Update 1: Ich habe alle unter System.Text.Encoding
gefunden Codierungen versucht. und alle zeigen die Datei nicht korrekt an.
Update 2: Ich habe die Dateicodierung geändert (die Datei neu gespeichert), um Unicode und System.Text.Encoding.Unicode
verwendet und es funktionierte gut. Warum also hat Notepad es richtig gelesen? Und warum nicht System.Text.Encoding.Unicode
die ANSI-Datei gelesen?
Sind Sie sicher, dass es in ANSI codiert ist? Manchmal versucht der Editor eine "optimale Schätzung" und verwendet eine andere Codierung als erwartet. –
Wenn Notepad feststellt, dass eine Datei nicht Unicode oder UTF-8 ist, greift sie auf das Gebietsschema des Systems zurück (eingestellt im Bedienfeld -> Bereich Region und Sprache). –