Wie liest man einen chinesischen text-Datei aus C#?
Wie kann ich Lesen chinesischen text-Datei mit C#, meinen aktuellen code anzeigen können nicht die richtigen Zeichen:
try
{
using (StreamReader sr = new StreamReader(path,System.Text.Encoding.UTF8))
{
//This is an arbitrary size for this example.
string c = null;
while (sr.Peek() >= 0)
{
c = null;
c = sr.ReadLine();
Console.WriteLine(c);
}
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die richtige Codierung für die Datei an. Weißt du, was das encoding ist? Es könnte sein, UTF-16, auch bekannt als Codierung.Unicode, oder eventuell so etwas wie Big5. Wirklich, Sie sollten versuchen, um herauszufinden, für sicher, anstatt zu raten obwohl.
Als leppie Antwort erwähnt, das problem könnte auch sein, das die Funktionen der Konsole. Um herauszufinden, sicher, sichern Sie die Zeichenfolge von Unicode-Zeichen die Werte als zahlen. Siehe meine Artikel zum Debuggen von unicode-Probleme für weitere Informationen und eine nützliche Methode zum ausgeben des Inhalts einer Zeichenfolge.
Ich würde auch vermeiden, mit dem code, den Sie gerade verwenden für das Einlesen einer Datei Zeile für Zeile. Verwenden Sie stattdessen so etwas wie:
Aufruf von Peek() erfordert, dass der stream ist in der Lage zu suchen, das mag wahr sein für die Dateien, aber nicht alle streams. Schauen Sie auch in Datei.ReadAllText und Datei.ReadAllLines wenn es das ist, was Sie tun möchten - Sie sind sehr handliches Dienstprogramm Methoden.
Wenn es das vereinfachte Chinesisch in der Regel ist es gb2312 und für die Traditionnelle chinesische es ist in der Regel die Big5 :
VerwendenEncoding.Unicode
statt.Ich glaube, Sie müssen ändern Sie die OutputEncoding der Konsole richtig anzeigen.
Nur ich hatte das gleiche problem wie deins und ich löse es jetzt. Ich denke, das Hauptproblem wäre aus txt-editor. Beim speichern von text in .txt-format mit dem Editor, Sie können wählen Sie die Codierung an der Unterseite. Die standardmäßige Codierung ist ANSI, die nicht der Unterstützung der chinesischen stream zu Lesen (abhängig von Ihrem computer), während Unicode arbeitet für chinesischen text. Ich hoffe, dies wird Ihnen helfen,:)
Cheers,
Ronald