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% 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:
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:
Anderenfalls verwenden Sie die Option Iconv
*//IGNORE
für die Zielcodierung:
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