#1 Le 21/06/2010, à 19:39
- TheCaméléon
[Résolu x2] Problème d'encodage de caractères
Bonjour,
J'ai encore un problème avec le même script, mais ce coup-ci c'est pour des caractères spéciaux. En fait je récupère des adresses de fichier depuis la base de donnée avec rhythmbox, mais le problème est qu'ils sont encodés en je ne sais quoi et que je voudrais les convertir en normal (utf-8 normal).
Ils sont encodés comme dans les url des pages internet (%20 pour espace etc). Le problème principal est que je ne sais pas à quel encodage ça correspond (iso, unicode, hexadecimal???).
Quel est donc cet encodage ?
Merci d'avance
TheCaméléon
Dernière modification par TheCaméléon (Le 29/06/2010, à 18:16)
Hors ligne
#2 Le 21/06/2010, à 19:54
- skingrapher
Re : [Résolu x2] Problème d'encodage de caractères
salut,
L'encodage est en hexadécimal.
XX d'une expression %XX dans une URL représente un caractère hexadécimal.
Dernière modification par skingrapher (Le 21/06/2010, à 19:56)
Je suis un obsédé textuel. J'aime trop le LaTeX.
Hors ligne
#3 Le 21/06/2010, à 21:47
- TheCaméléon
Re : [Résolu x2] Problème d'encodage de caractères
ok
Et comment peut-on indiquer à un logiciel comme iconv que le texte d'entrée est en hexadécimal (enfin les caractères spéciaux seulement) pour qu'il le convertisse en utf-8 "normal" ?
Hors ligne
#4 Le 21/06/2010, à 21:58
- Link31
Re : [Résolu x2] Problème d'encodage de caractères
echo "h%E9h%E9%2C+%E7a+marche+!" | perl -pe "s/\%([A-Fa-f0-9]{2})/pack('C', hex(\$1))/eg;s/\+/ /sg"
Hors ligne
#5 Le 21/06/2010, à 22:55
- gilbert
Re : [Résolu x2] Problème d'encodage de caractères
echo "h%E9h%E9%2C+%E7a+marche+!" | perl -pe "s/\%([A-Fa-f0-9]{2})/pack('C', hex(\$1))/eg;s/\+/ /sg"
Presque.. Ton exemple est mal choisi le point d'exclamation est interprété par le shell...
$ echo "h%E9h%E9%2C+%E7a+marche+!" | perl -pe "s/\%([A-Fa-f0-9]{2})/pack('C', hex(\$1))/eg;s/\+/ /sg"
bash: !": event not found
Il devrait commencer par protéger les caractères spéciaux par des backslash... C'est un peu gênant non ?
Simplement moi-même..
Hors ligne
#6 Le 21/06/2010, à 23:08
- grim7reaper
Re : [Résolu x2] Problème d'encodage de caractères
Bah, tu remplaces les doubles quotes du echo par des simples et ça suffit, non ?
Hors ligne
#7 Le 21/06/2010, à 23:29
- Link31
Re : [Résolu x2] Problème d'encodage de caractères
Presque.. Ton exemple est mal choisi le point d'exclamation est interprété par le shell...
C'est le genre de fonctionnalité stupide et inutile que je désactive immédiatement dans mes shells interactifs.
Cela dit, ça n'empêche absolument pas l'utilisation du caractère "!" dans un script.
Hors ligne
#8 Le 22/06/2010, à 12:43
- TheCaméléon
Re : [Résolu x2] Problème d'encodage de caractères
Merci
Mon script marche à merveille
Hors ligne
#9 Le 28/06/2010, à 19:33
- TheCaméléon
Re : [Résolu x2] Problème d'encodage de caractères
Re !
J'ai encore un problème d'encodage
Cette fois c'est pour récupérer des paroles de chansons depuis TuneWiki. Mais pour embêter les développeurs imaginatifs, ils ont encodé toutes les paroles.
Je crois que c'est du codage html (ascii?). En gros tout navigateur internet l'interprète normalement, mais pas bash :S
En gros ça donne ça :
&#89;&#111;&#117;&#110;&#103; &#77;&#97;&#110;, &#84;&#104;&#101;&#114;&#101;'&#115; &#78;&#111; &#78;&#101;&#101;&#100; &#84;&#111; &#70;&#101;&#101;&#108; &#68;&#111;&#119;&#110;<br />&#73; &#83;&#97;&#105;&#100;, &#89;&#111;&#117;&#110;&#103; &#77;&#97;&#110;, &#80;&#105;&#99;&#107; &#89;&#111;&#117;&#114;&#115;&#101;&#108;&#102; &#79;&#102;&#102; &#84;&#104;&#101; &#71;&#114;&#111;&#117;&#110;&#100;<br />&#73; &#83;&#97;&#105;&#100;, &#89;&#111;&#117;&#110;&#103; &#77;&#97;&#110;, '&#99;&#97;&#117;&#115;&#101; &#89;&#111;&#117;&#114; &#73;&#110; A &#78;&#101;&#119; &#84;&#111;&#119;&#110;<br />&#84;&#104;&#101;&#114;&#101;'&#115; &#78;&#111; &#78;&#101;&#101;&#100; &#84;&#111; &#66;&#101; &#85;&#110;&#104;&#97;&#112;&#112;&#121;<br />&#89;&#111;&#117;&#110;&#103; &#77;&#97;&#110;, &#84;&#104;&#101;&#114;&#101;'&#115; A &#80;&#108;&#97;&#99;&#101; &#89;&#111;&#117; &#67;&#97;&#110; &#71;&#111;<br />&#73; &#83;&#97;&#105;&#100;, &#89;&#111;&#117;&#110;&#103; &#77;&#97;&#110;, &#87;&#104;&#101;&#110; &#89;&#111;&#117;'&#114;&#101; &#83;&#104;&#111;&#114;&#116; &#79;&#110; &#89;&#111;&#117;&#114; &#68;&#111;&#117;&#103;&#104;<br />&#89;&#111;&#117; &#67;&#97;&#110; &#83;&#116;&#97;&#121; &#84;&#104;&#101;&#114;&#101;, A&#110;&#100; &#73;'&#77; &#83;&#117;&#114;&#101; &#89;&#111;&#117; &#87;&#105;&#108;&#108; &#70;&#105;&#110;&#100;
Et je voudrais le convertir (avec bash) en texte "normal" que tous les monde peut lire
Merci d'avance !
PS ; excusez-moi mais comme les navigateurs interprètent automatiquement le texte, j'ai mis des "&" au lieu des "&".
Les trucs qui posent problèmes sont les "&CHIFFRES;"
Dernière modification par TheCaméléon (Le 28/06/2010, à 19:37)
Hors ligne
#10 Le 28/06/2010, à 20:16
- grim7reaper
Re : [Résolu x2] Problème d'encodage de caractères
En Perl (nécessite le module HTML::Entities, je ne sais plus s'il est installé par défaut).
echo ' &#87;&#105;&#108;&#108; &#70;&#105;&#110;&#100;' | perl -MHTML::Entities -pe 'decode_entities($_)'
J'ai fait comme toi : & correspond à &
Dernière modification par grim7reaper (Le 28/06/2010, à 20:27)
Hors ligne
#11 Le 29/06/2010, à 17:57
- TheCaméléon
Re : [Résolu x2] Problème d'encodage de caractères
Merci 1000fois !
Réflexion faite, http://search.mp3lyrics.org/ est plus complet que TuneWiki, mais ils utilisent le même encodage, donc parfait
Visiblement, HTML::Entitiese est installé par défaut (pratique )
Hors ligne