In meiner App (Rails 3.0.5, Ruby 1.8.7) habe ich ein Import-Tool zum Importieren von CSV-Daten aus einer Datei erstellt.
Problem: Ich habe meine Benutzer gebeten, die CSV-Datei aus Excel in UTF-8-Codierung zu exportieren, aber sie tun es die meiste Zeit nicht.
Wie kann ich vor dem Import überprüfen, ob die Datei UTF-8 ist? Andernfalls wird der Import ausgeführt, aber es ergeben sich merkwürdige Ergebnisse. Ich verwende FasterCSV zum Importieren.
Beispiel einer schlechten CSV-Datei:
%Vor%Danke.
Sie können Charlock Holmes verwenden, eine Zeichenerkennungsbibliothek für Ruby.
Um es zu verwenden, lesen Sie einfach die Datei und verwenden Sie die Methode detect
.
Sie können die Codierung auch in UTF-8 konvertieren, wenn sie nicht im richtigen Format vorliegt:
%Vor%Dies erspart es den Benutzern, es selbst zu tun, bevor sie es erneut hochladen.
Für 1.9 ist es offensichtlich, Sie sagen nur, dass es utf8 erwartet und es wird einen Fehler auslösen, wenn es nicht ist:
%Vor%Tags und Links ruby ruby-on-rails csv