Ruby CSV UTF8-Kodierungsfehler beim Lesen

8

Das habe ich gemacht:

%Vor%

Ich habe das zum Testen benutzt:

%Vor%

Und ich stieß darauf:

%Vor%

Ich lese die Antwort hier und das habe ich auch versucht

%Vor%

Ich habe den folgenden Fehler gefunden:

%Vor%

Dann stieß ich auf ein Ruby-Juwel - charlock_holmes. Ich dachte, ich würde es versuchen, um die Quellcodierung zu finden.

%Vor%

Also habe ich das gemacht:

%Vor%

Und immer noch das:

%Vor%     
Vighnesh 04.04.2013, 21:49
quelle

1 Antwort

4

Es sieht so aus, als hätten Sie Probleme, die gültige Kodierung Ihrer Datei zu erkennen. CharlockHolmes bietet Ihnen einen nützlichen Tipp von :confidence=>37 , was einfach bedeutet, dass die erkannte Kodierung möglicherweise nicht die richtige ist.

Basierend auf Fehlermeldungen und test_transcode.rb von Ссылка Ich habe die Codierung gefunden, die beide Fehlermeldungen durchläuft. Mit Hilfe von String#encode ist es einfach zu testen:

%Vor%

Ihr Problem sieht aus wie in der Datei und nicht in Ruby.

Falls wir nicht sicher sind, welche Kodierung verwendet werden soll und ein Zeichen verlieren kann, können wir :invalid und :undef params für String#encode verwenden, in diesem Fall:

%Vor%

Anderenfalls verwenden Sie die Option Iconv *//IGNORE für die Zielcodierung:

%Vor%

Als Quellcodierungsvorschlag von CharlockHolmes sollte es ziemlich gut sein.

PS. String.encode wurde in Ruby 1.9 eingeführt. Mit Ruby 1.8 können Sie Iconv

verwenden     
chrmod 04.04.2013 22:25
quelle

Tags und Links