Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2007, 16h15   #1
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 3
Points : 0
Points : 0
Par défaut Commande de conversion

Bonjour à tous,
Je cherche à faire une commande UNIX permettant de faire une recherche de tous les fichiers qui ne sont pas en UTF-8
Je connais la commande file et la commande find mais je n'arrive pas a faire un script UNIX de recherche.

Une autre petite question : est-il possible de convertir par une commande UNIX un codage de fichier : d'un fichier texte (ex : PHP script text) en UTF-8 (UTF-8 Unicode C program text)

Merci beaucoup
@+
Farfadetum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 16h27   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
find . -type f -exec file {} \; | grep 'UTF-8' ?

Citation:
Envoyé par Farfadetum
Une autre petite question : est-il possible de convertir par une commande UNIX un codage de fichier : d'un fichier texte (ex : PHP script text) en UTF-8 (UTF-8 Unicode C program text)
Avec iconv : iconv -f ISO-8859-1 -t UTF-8 fichier_entree -o fichier_sortie ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 16h36   #3
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 293
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 293
Points : 2 741
Points : 2 741
Citation:
Envoyé par Farfadetum
Bonjour à tous,
Je cherche à faire une commande UNIX permettant de faire une recherche de tous les fichiers qui ne sont pas en UTF-8
Je connais la commande file et la commande find mais je n'arrive pas a faire un script UNIX de recherche.

Une autre petite question : est-il possible de convertir par une commande UNIX un codage de fichier : d'un fichier texte (ex : PHP script text) en UTF-8 (UTF-8 Unicode C program text)

Merci beaucoup
@+
dans le cas général, le format texte ne stocke pas l'information d'encoding…
même si certains formats comme XML le font…

pour connaître le format d'encodage d'un fichier texte, il faut le "sniffer" :
le lire et et déterminer par le parsing des bytes de quel encodage il peut bien s'agir… ce qui n'est pas très efficace à implémenter en shell…

(tout en sachant que ce ne sera jamais déterminé à 100%… et plusieurs encodages peuvent convenir pour un même fichier…)

vous pouvez utiliser iconv pour convertir d'un encodage vers un autre…

comme iconv sans l'option -c échoue si le texte original contient des caractères illégaux pour l'encodage source spécifié, vous pouvez établir une stratégie basée sur une suite de iconv avec les encodages "source" dans l'ordre de probabilité décroissante que vous estimez rencontrer sur votre machine…
si la conversion échoue vous essayez le cas suivant…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 18h10   #4
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 3
Points : 0
Points : 0
Salut et meci de vos réponses

Et la commande file, elle fonctionne très bien
Quand je fais dans un répertoire : file *

ça me donne :
Citation:
GalerieVideo.php: UTF-8 Unicode C program text
GalerieVideoLectureRepertoire.php: PHP script text
TOTO: directory
create_account_success.php: PHP script text
product_info.php: PHP script text
stylesheet.css: ASCII C program text
Mais en fait, je veux analyser ça. Le but est de changer tous les codages PHP script text en UTF-8 Unicode C program text

Je n'arrive pas à le faire automatiquement avec BBEdit alors j'essais de lui inclure un filtre unix

Que pensez-vous de la commande file ?

@+
Farfadetum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 18h27   #5
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 293
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 293
Points : 2 741
Points : 2 741
Citation:
Envoyé par Farfadetum
Salut et meci de vos réponses

Et la commande file, elle fonctionne très bien
Quand je fais dans un répertoire : file *

ça me donne :


Mais en fait, je veux analyser ça. Le but est de changer tous les codages PHP script text en UTF-8 Unicode C program text

Je n'arrive pas à le faire automatiquement avec BBEdit alors j'essais de lui inclure un filtre unix

Que pensez-vous de la commande file ?

@+
"PHP script text" n'est pas une description d'encodage…
vous pouvez avoir un script PHP aussi bien en Latin-1 qu'en UTF-8…

utiliser "file" dans ce cadre n'est pas l'idéal…
file est conçu pour distinguer le type de fichier au niveau fonctionnel pas au niveau des subtilités internes des encodages…
même si dans certains cas il donne apparemment la bonne réponse…
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 18h39   #6
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 3
Points : 0
Points : 0
bon, bon, bon, ch'ui pas dans la beeeeeep...

Don il faudrait un script qui enregistre directement tous mes fichiers en UTF-8.

Peut t-on le faire avec BBEdit qui est assez puissant ou un autre éditeur de scripts ? Si oui, comment...

Merci
Farfadetum est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h23.


 
 
 
 
Partenaires

Hébergement Web