2009-03-12 3 views
0

Ich lese die Textdatei Zeile für Zeile, so weit so gut. Ich dies nur verwenden:Konvertierung der Datei nach dem Lesen StreamReader in Compact Framework

using (StreamReader sr = new StreamReader(this._inFilePath)) 

      { 
       string line; 
       int index = 0; 

       // Read and display lines from the file until the end of 
       // the file is reached: 
       while ((line = sr.ReadLine()) != null) 
       { 
        //skip empty lines 
        if (line == "") 
        { 
         continue; 
        } 
} 
} 

Es ist nun zu meiner Aufmerksamkeit gekommen ist, die ich brauche möglicherweise nach dem Lesen sie die Datei in Unicode zu konvertieren. Wie wird es gemacht? Verwendet jemand Convert-Klasse?

Antwort

0

Sie können Text nicht in Unicode nach lesen es zu lesen, da es bereits durch eine Zeichenfolge bis dahin, enthält tatsächliche Zeichen Zuordnung zu Unicode-Codepunkten. Was Sie in Ihrem Codebeispiel tun, ist das Lesen der Datei als Unicode, seit that is the default StreamReader behavior.

Was lässt Sie denken, dass Sie etwas konvertieren müssen? Ist der Text beschädigt?

+0

Ja, Celsius-Symbol (° C) wird als C angezeigt. Wenn ich die Datei in Unicode einlese und den StreamReader-Parameter auf Unicode eingestellt habe, wird das Symbol ordnungsgemäß angezeigt. Denken Sie daran, dass dies eine kompakte Framework-Windows-App ist, die auf WinCE5.0, HP Thin Client ausgeführt wird. – sarsnake

+0

heißt es, es ist UTF-8, die sich in meinem Fall anders zu verhalten scheint als Unicode. – sarsnake

+0

Ja, UTF-8 und Unicode sind nicht identisch. – ctacke

0

Problem gelöst:

  using (StreamReader sr = new StreamReader(this._inFilePath, System.Text.Encoding.Default)) 

scheinbar Standard entspricht ANSI und die Dateien erzeugt wurden ANSI (nicht UTF-8).

Dank für Ihre Antworten jeder!

+0

Dies ist nicht unbedingt eine zuverlässige Lösung. Der Standardwert entspricht nicht immer "ANSI", sondern dem Standardgebietsschema des Systems. Das würde also * nicht * funktionieren, Textdateien mit kyrillischem Text auf einem Windows-Rechner mit spanischen Spracheinstellungen zu lesen. – bzlm

+0

Als allgemeine Regel gilt: Wenn Sie die Dateien * selbst * erstellen, ist Encoding.Default sicher zu verwenden. Aber ich würde solche Annahmen nicht machen. – bzlm

+0

Wir haben garantiert die gleiche Konfiguration für alle HP Thin Clients auf der ganzen Linie. Kein Chinesisch oder Kyrillisch oder Spanisch. – sarsnake

Verwandte Themen