ich eine Textdatei zu lesen, die können Saibling aus folgenden Sprachen enthalten: Englisch, Japanisch, Chinesisch, Französisch, Spanisch, Deutsch, Italienischmehrsprachige Textdatei in C# Lesen
Meine Aufgabe einfach ist, die Daten zu lesen, und schreibe es in eine neue Textdatei (Platzieren einer neuen Zeile char \n
nach 100 Zeichen).
Ich kann File.ReadAllText
und File.ReadAllLines
nicht verwenden, da die Dateigröße mehr als 500 MB betragen kann. So habe ich geschrieben folgenden Code:
using (var streamReader = new StreamReader(inputFilePath, Encoding.ASCII))
{
using (var streamWriter = new StreamWriter(outputFilePath,false))
{
char[] bytes = new char[100];
while (streamReader.Read(bytes, 0, 100) > 0)
{
var data = new string(bytes);
streamWriter.WriteLine(data);
}
MessageBox.Show("Compleated");
}
}
Anders als ASCII
Codierung habe ich versucht UTF-7
, UTF-8
, UTF-32
und IBM500
. Aber kein Glück beim Lesen und Schreiben von mehrsprachigen Zeichen.
Bitte helfen Sie mir, dies zu erreichen.
Die Sprache spielt keine Rolle (wenn Sie wirklich Zeichen, aka Symbole zählen müssen). Was ist Kodierung, wie werden diese speziellen Zeichen gespeichert? Wenn die Kodierung 8-Bit verwendet, um ein Zeichen (ASCII) darzustellen, dann ist Ihr Ansatz in Ordnung, weil das Lesen von 100 Bytes gleich dem Lesen von 100 Zeichen ist: fügen Sie einfach '\ n''nach dem Schreiben jedes Teils hinzu. Andernfalls ([variable-length encoding] (https://en.wikipedia.org/wiki/Variable-width_encoding)) sind Sie in der Tat in Schwierigkeiten, Sie müssen wissen/[Kodierung erkennen] (http://stackoverflow.com/q/4520184/1997232). – Sinatr
Sie müssen herausfinden, wie der Text codiert ist. Wenn die Datei asiatische und westliche Sprachen enthält, ist dies wahrscheinlich Unicode, Big Endian Unicode oder UTF32. Hoffentlich beginnt die Datei mit einem Kodierungsindikator, wie in der Antwort von Christian Jäger gezeigt. Oder es könnte eine Mischung aus Codierungen sein, in diesem Fall müssen Sie herausfinden, wie die Datei strukturiert ist. Es ist sogar möglich, dass Sie den Text untersuchen und die Kodierung ableiten müssen, was überhaupt nicht trivial ist. –
Eine Option besteht darin, sie "zurückzusenden", wenn sie nicht mit einer Kodierung gemäß Spezifikation, Konvention oder Standard geliefert wird. Das Erkennen von Kodierungen ist ein Maß für den letzten Ausweg. –