Connaître l'encodage d'un fichier texte ou csv par l'appli

Bonjour,

J’ai un petit souci avec l’encodage de fichiers.

Je développe une application Ruby on Rails dans laquelle j’utilise
uniquement de l’utf-8 (application et base de données).

Je dois maintenant importer des données d’un fichier csv dans la base
de données de l’application. Il se trouve que ce fichier csv est dans
l’encodage de l’ordinateur qui l’a créé (par exemple ISO-8859-1 pour
Windows ou MacRoman pour Mac OS X). J’ai donc utilisé “Iconv” pour
convertir les données avant de les mettre dans la base de données.

Actuellement, je demande à l’utilisateur de spécifier l’encodage avant
que l’application mette les données dans la base (par une liste
déroulante). J’aurais voulu savoir s’il existant un moyen de connaître
l’encodage d’un fichier uploadé (texte ou csv par exemple) sur le
serveur sans devoir demander à l’utilisateur…

Merci d’avance de vos éventuelles aides/réponses!

Meilleures salutations,
No

Noé :

J’aurais voulu savoir s’il existant un moyen de connaître
l’encodage d’un fichier uploadé (texte ou csv par exemple)
sur le serveur sans devoir demander à l’utilisateur…

Tu peux rechercher dans les archives de Railsfrance avec les mots
clés “charguess” et “chardet”.

– Jean-François.

Bonjour à tous,

Je cherche à faire une petite modif au plugin
“Act_as_authentificated” pour gérer les rôles. Ce dont j’ai besoin
n’est pas très compliqué : 5 niveaux croissants de rôles,
croissant, chacun inclus les droites des précédents. de 0 à 4. J’ai
donc modifié la table users avec un champs role :integer et je test
si role >= 3 pour savoir si le user peu faire l’action.

Mon problème: avec ce plugin je peux tester n’importe où
“logged_in?”, je voudrais créer l’équivalent pour “is_admin?” ou
“is_subscriber?”, j’ai donc créé une nouvelle fonction par rôle
dans /lib/authenticated_system.rb. Le problème c’est que cette
fonction n’est pas définie dans les vues mais bien dans les
controleurs. Je comprends pas pourquoi la fonction logged_in? elle
est disponible n’importe où. C’est la preuve qu’il y a un truc
important que je ne comprends pas.

Quelqu’un peu me dire pourquoi et où je dois définir ces fonctions ?

Merci de votre aide

Christophe Guégan
[email protected]
http://www.cap250.com

Pourquoi ne pas prendre un plugin pour cela comme acl_system qui se
marie tres bien avec AAA
http://agilewebdevelopment.com/plugins/acl_system

Seb

Oui, j’ai envisager ce plugin, mais

  1. suivant le principe du KISS, c’est trop puissant pour ce dont j’ai
    besoin
    2 J’évite au maximum l’utilisation des plugins parce je me méfie de
    l’existence des plugs dans quelque mois. (Expérience vécue.)
  2. J’aime pas ne pas comprendre, c’est surtout là le sens de ma question

Super, c’est exactement ça que je cherchais ! Simple et efficace
comme Rails !

Merci

Christophe Guégan
[email protected]
http://www.cap250.com

Christophe :

Oui, j’ai envisager ce plugin, mais

  1. suivant le principe du KISS, c’est trop puissant pour ce dont j’ai besoin
    2 J’évite au maximum l’utilisation des plugins parce je me méfie
    de l’existence des plugs dans quelque mois. (Expérience vécue.)

Tutututu.

according to David Hansson, “plugins are enterprise-ready.” I concur.

http://eigenclass.org/rails-manifesto.rb

(Cliquez plusieurs fois sur le bouton “Reload” si vous ne voyez pas
la phrase tout de suite. Entre temps, vous intercepterez peut-être
un “plugins rock” ou un “plugins are stable”).

-- Jean-François (performance is dead,
    in fact because it's so Web 1.0.)

acl_system est vraiment basique (difficile de faire plus simple en
terme de fonctionnalités)
Moi aussi j’hésite toujours à utiliser un plugin mais entre utiliser
un plugin et modifier le code d’un autre, je préfère utiliser un plugin.

Je l’ai déjà utilsé et il marche très bien.

Sinon pour ton pb, c dans la lib tout en bas, ajoute tes méthodes
pour quelles soient aussi helpers

Inclusion hook to make #current_user and #logged_in?

available as ActionView helper methods.

def self.included(base)
base.send :helper_method, :current_user, :logged_in?
end

Seb

On 08 Apr 2007, at 14:25, Jean-François Trân wrote:

according to David Hansson, “plugins are enterprise-ready.” I concur.

D’accord avec toi, Jean-François

Mais je me rappelle qu’il a +/- 1 an, tout le monde ne jurait que par
les “engines” quand on demandait quelle solution pour les gérer les
users, j’ai compté dessus pour 1 projet et du tout refaire en +
propre au passage de Rails 1.1. Depuis j’ai appris à me méfier, et si
je peux faire moi même une solution SIMPLE, je le fait. Sinon quand
je me laisse aller à utiliser un plugin, je suis super prudent.

Exemple je suis en train de faire du mashup googleMap. et je m’amuse
bien avec “ym4r_gm”, c’est un super plugin, mais baser un appli
complète dessus c’est faire un pari.

Christophe_______________________________________________
Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Salut Cyril,

Cyril M. a écrit :

que pour tout document en plain-text, l’encodage qui était celui du
document récupéré était toujours l’encodage de la page HTML. Ainsi je

Rho ! Scandale ! Quand tu uploads un fichier, ce n’est pas censé
toucher à son encodage !

correspondre à l’encodage du serveur. Mais peut-être que cela est une
spécificité de Python.

Ça me semble quand même hautement douteux…

Non, travailler avec charguess/chardet reste une bien meilleure solution
(note que tu as aussi charguess en Python ;-)).


Christophe P. a.k.a. TDD
“[They] did not know it was impossible, so they did it.” --Mark Twain
Email: [email protected]

On 4/8/07, Christophe Guégan [email protected] wrote:

Mais je me rappelle qu’il a +/- 1 an, tout le monde ne jurait que par
les “engines” quand on demandait quelle solution pour les gérer les
users, j’ai compté dessus pour 1 projet et du tout refaire en +
propre au passage de Rails 1.1. Depuis j’ai appris à me méfier, et si
je peux faire moi même une solution SIMPLE, je le fait. Sinon quand
je me laisse aller à utiliser un plugin, je suis super prudent.

Ca me rappelle un peu la folie du J2EE, ça.
A partir du moment où on utilise une lib externe, il faut s’(assurer
de sa stabilité. Le fait que ce soit un plugin, un engine, n’importe
quoi, quelque part, on s’en fout. L’essentiel, c’est d’avoir un
ensemble fonctionnel et de pouvoir garder ce niveau de fonctionnalité
quelquesoient els évolutions des briques, qu’elles aient été
développées en interne ou non.

Exemple je suis en train de faire du mashup googleMap. et je m’amuse
bien avec “ym4r_gm”, c’est un super plugin, mais baser un appli
complète dessus c’est faire un pari.

Pas plus qu’en basant l’appli sur ton code, parce qu’après tout rien
ne t’oblige à suivre les versions de ce plugin …


Nicolas D.
N’imprimez ce mail que si vous ne savez pas le lire sur l’écran : les
électrons se recyclent bien, le papier, beaucoup moins bien.

On 4/7/07, [email protected] [email protected] wrote:

Windows ou MacRoman pour Mac OS X). J’ai donc utilisé “Iconv” pour
convertir les données avant de les mettre dans la base de données.

Actuellement, je demande à l’utilisateur de spécifier l’encodage avant
que l’application mette les données dans la base (par une liste
déroulante). J’aurais voulu savoir s’il existant un moyen de connaître
l’encodage d’un fichier uploadé (texte ou csv par exemple) sur le
serveur sans devoir demander à l’utilisateur…

Je n’ai jamais eu à faire de test avec Rails, mais j’ai fait les test
avec une application en Python et Cherrypy. Il en est ainsi ressorti
que pour tout document en plain-text, l’encodage qui était celui du
document récupéré était toujours l’encodage de la page HTML. Ainsi je
crois que le navigateur faisait lui-même le changement d’encodage pour
correspondre à l’encodage du serveur. Mais peut-être que cela est une
spécificité de Python.

Bon week-end

Je confirme, charguess marche bien. D’ailleurs, j’ai posé la même
question il y a quelques mois…

++

yk

Jean-François Trân a écrit :

Ned:

Pourquoi ne pas prendre un plugin pour cela comme
acl_system qui se marie tres bien avec AAA
http://agilewebdevelopment.com/plugins/acl_system

Quelqu’un a déjà eu une expérience avec
writertopia
?

Voir les archives de Railsfrance. Mot-clé fredix :slight_smile:

– Jean-François.

On 4/10/07, Ned B. [email protected] wrote:

Quelqu’un a déjà eu une expérience avec
writertopia
?

Ca a l’air génial, mais j’ai eu bien du mal, lors de ma seule
tentative, à le faire marcher.


Nicolas D.
N’imprimez ce mail que si vous ne savez pas le lire sur l’écran : les
électrons se recyclent bien, le papier, beaucoup moins bien.

Sébastien Gruhier <sgruhier@…> writes:

Pourquoi ne pas prendre un plugin pour cela comme acl_system qui se marie tres
bien avec AAA
http://agilewebdevelopment.com/plugins/acl_system

Quelqu’un a déjà eu une expérience avec
http://www.writertopia.com/developers/authorization
?

Idem pour moi.

Sans avoir vraiment pris tout le temps nécessaire, je suis pas sûr de
bien comprendre tous les concepts qui sont expliqués dans le README.
Sinon ça a l’air génial.

Un tuto serais vraiment bienvenue pour dégrossir si l’un d’entre nous
a le temps.

Christophe Guégan
[email protected]
http://www.cap250.com

J’ai le meme besoin que vous :
J’utilise actuellement acts_as_authenticated et je veux gerer des roles
: je
m’interessais au plugin Authorization.
Je me suis pas plongé dedans, mais je compte regarder ca de plus pres
asap.

On se tient au courant de nos decouvertes

Laurent

Le 11/04/07, Christophe Guégan [email protected] a écrit :

Ca a l’air génial, mais j’ai eu bien du mal, lors de ma seule


Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance


Laurent Bois
8 résidence St Jean
74550 Perrignier
France
+33 661643075