2016-11-09 6 views
0

Ich habe Probleme mit dem Lesen tschechischer Zeichen aus einer TXT-Datei.Lesen von tschechischen Zeichen aus einer TXT-Datei mit PHP

Ich möchte. TXT-Dateien mit Kategorien Zeile für Zeile lesen. Mit allgemeinen Sprachen habe ich kein Problem. Ich kann Zeile für Zeile die TXT-Datei lesen und die gewünschten Kategorien in ein Array kopieren.

Aber sobald ich eine txt-Datei lesen möchte, die Kategorien in der tschechischen Sprache enthält, bekomme ich Probleme, die Ausgabe meines Codes zu verarbeiten. Die tschechischen spezifischen Charaktere kommen Müll heraus, obwohl die Textdatei die Charaktere korrekt zeigt.

Als ein Beispiel: Die Buchstaben ì, č, ů oder ř werden alle als Quadrat oder als st \ u00d0b oder andere reiben ausgegeben, abhängig von der Art, wie ich die Datei lese.

Ursprünglich verwende ich die fgets-Funktion, um eine Zeile aus der Textdatei zu lesen.

Da dies jedoch nicht die korrekten Zeichen zurückgab, habe ich mit dem Hinzufügen von utf8_encode angefangen, aber während das einige Zeichen änderte, hat es immer noch nicht alle Zeichen wiederhergestellt.

Dann begann ich mit mb_detect_encoding in Kombination mit mb_convert_encoding zu experimentieren und las später irgendwo, dass fgets manchmal falsche Zeichen zurückgab, also begann ich mit file_get_contents zu testen. Dies hat das Problem auch nicht gelöst.

Ich nehme an, das Hauptproblem ist mit der Art, wie ich die TXT-Datei lesen, da die Ausgabe von den Funktionen fgets und file_get_contents von Anfang an verstümmelt sind.

Kann mir jemand sagen, wie man eine Textdatei mit tschechischen Zeichen richtig liest?

Dank Im Voraus.

+0

'\ u001' erscheint nicht aus dem Nichts, Sie müssen einen spezifischen Code haben, der es generiert (es scheint eine JavaScript/JSON-Unicode-Einheit zu sein). Versuchen Sie auch nicht blind zu funktionieren. Warum 'utf8_encode()'? Latin-1 kann nicht einmal tschechische Zeichen speichern! –

+0

Der Grund für den blinden Versuch ist, dass ich seit zwei Wochen an diesem Thema arbeite. Überall im Internet nach einer Lösung gesucht, aber die meisten Artikel über das Laden von HTML-Seiten und nicht TXT-Dateien. Also war ich in der Lage, alle Möglichkeiten auszuprobieren, die mir einfielen :-). Zufällig fand ich das Problem in der TXT-Datei und Nog in dem Code, den ich verwendete ... –

Antwort

0

Oké Ich habe die Lösung selbst gefunden. Nur für den Fall, dass jemand anderes auf dieses Problem stößt, war die TXT-Datei falsch codiert. Die Datei war in der Codierung "UCS-2 Little Endian". Nach dem Laden der Datei in Notepad ++ konnte ich es in das UTF-8-Format kodieren und das löste das Problem.

Verwandte Themen