Bonjour Thomas, > Maintenant, j'essaye de créer un petit programme qui lit les > traductions pour les mettres dans la base, or je n'arrive déséperement > pas à ouvrir un fichier en UTF-8.
Quand tu parles de petit programme, tu veux dire que tu as créé un script .rb que tu fais tourner en dehors de Rails, c'est ça ? Si c'est bien ça et à moins que tu charges l'environment.rb de Rails, ruby ne travaillera pas en UTF-8 par défaut: Stitch:~/Work thbar$ irb irb(main):001:0> $KCODE => "NONE" Par contre si tu ouvres ruby script/console dans ton application Rails, tu auras: Stitch:~/Work thbar$ ruby script/console Loading development environment. >> $KCODE => "UTF8" car Rails initialise KCODE à 'UTF8' lui même (enfin depuis quelques temps). Tu devrais obtenir ce que tu attends dans un puts result. J'ai plusieurs suggestions à te faire: - utiliser FasterCSV (http://fastercsv.rubyforge.org/) pour parser le CSV - te placer dans une tache Rake pour tout ce qui concerne les taches périphériques, afin de bénéficier des réglages de Rails (ex: UTF-8) mais aussi de tous tes modèles ActiveRecord Voici un début d'exemple (que tu peux placer sous lib/tasks/ monfichier.rake pour le rendre disponible sous rake directement) require 'fastercsv' namespace :mycompany do desc "Pick up all translations from xxx.csv and load them in the database" task :fill_all_translations do FasterCSV.open('test.txt') ... MyRecord.create!(:title => row...) end end end Tu pourras alors t'en servir en invoquant rake mycompany:fill_all_translations. Je réalise une grande partie de mes tâches de maintenance de cette façon, c'est très pratique. a+! Thibaut Barrère -- LoGeek http://www.dotnetguru2.org/tbarrere/ --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED] -~----------~----~----~----~------~----~------~--~---
