Datei mit UTF-8 in Haskell als IO String lesen

8

Ich habe den folgenden Code, der funktioniert, es sei denn, die Datei hat utf-8 characteres:

%Vor%

Mit utf-8 Charakteren bekomme ich das: hGetContents: invalid argument (invalid byte sequence)

Da die Datei, mit der ich arbeite, UTF-8 -Zeichen hat, möchte ich diese Ausnahme behandeln, um die aus Ref importierten Funktionen wiederzuverwenden, falls möglich.

Gibt es eine Möglichkeit, eine UTF-8 -Datei als IO String zu lesen, damit ich meine Ref -Funktionen wiederverwenden kann? Welche Änderungen muss ich an meinem Code vornehmen? Danke im Voraus.

Ich füge die Deklarationen der Funktionen von meinem Ref -Modul an:

%Vor%

seit dem Auftakt:

%Vor%     
George Peppa 30.10.2015, 20:56
quelle

3 Antworten

2

Danke für die Antworten, aber ich habe die Lösung selbst gefunden. Tatsächlich hat die Datei, mit der ich gearbeitet habe, diese Kodifizierung:

%Vor%

Also mit dieser Datei mit meinem Haskell-Code zu arbeiten Es sollte stattdessen diese Kodierung haben:

%Vor%

Sie können die Dateicodierung mit dem Dienstprogramm file wie folgt überprüfen:

%Vor%

Um die Dateicodierung zu ändern, folgen Sie den Anweisungen dieses Links !

    
George Peppa 01.11.2015, 02:52
quelle
3

Dies kann nur mit GHCs grundlegendem (aber vom Standard erweitertem) Modul System.IO durchgeführt werden, obwohl Sie dann mehr Funktionen verwenden müssen:

%Vor%     
Ørjan Johansen 30.10.2015 21:43
quelle
1

Verwenden Sie System.IO.Encoding .

Der Mangel an Unicode-Unterstützung ist ein bekanntes Problem mit der Standard-Haskell IO-Bibliothek.

%Vor%     
jazmit 30.10.2015 21:38
quelle

Tags und Links