|
|
|
|
||||||
| fr.comp.os.linux.config Prise en main d'un système Linux. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
Il y un truc que j'aime bien avec recode, c'est la possibilité de convertir automatiquement un texte en «7-bit» par un correspondance approximative mais honnête. Par exemple: mpg@siegel:~$ echo àéïôù | recode -f u8..flat aeiou Malheureusement, recode n'est pas présent sur tous les systèmes. Iconv par contre est présent sur, en tout cas, tousceux que je fréquente. J'aimerais bien pouvoir faire pareil avec iconv que ci-dessus. Il me semble que c'est possible (quelqu'un me l'a dit, mais vite fait et je n'ai pas retenu l'option). Je n'arrive pas à trouver et le page de man d'icon n'est franchement pas bavarde. Quelqu'un sait-il faire ça ? Merci d'avance, Manuel. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
(attention, tes lignes sont un petit peu trop longues)
mpg wrote in message <fbakkv$so8$1@talisker.lacave.net>: > Malheureusement, recode n'est pas présent sur tous les systèmes. Iconv par > contre est présent sur, en tout cas, tousceux que je fréquente. J'aimerais bien > pouvoir faire pareil avec iconv que ci-dessus. Il me semble que c'est possible > (quelqu'un me l'a dit, mais vite fait et je n'ai pas retenu l'option). Je > n'arrive pas à trouver et le page de man d'icon n'est franchement pas bavarde. > > Quelqu'un sait-il faire ça ? Si c'est un GNU iconv: iconv -t ASCII//TRANSLIT fait ça. Sinon, si tu as un perl 5.8, tu peux utiliser son module Unicode pour mettre le texte en forme canonique décomposée et enlever les combinants: perl -MUnicode::Normalize -pe 'BEGIN{binmode STDIN, ":encoding(utf-8)"} $_ = NFD $_; y/[^\x00-\xFF]//cd' Le comportement est un petit peu moins bon pour les caractères qui ne sont pas juste des caractères accentués, comme oe ou le symbole euro. Tu peux essayer de varier entre NFD et NFKD pour voir le quel marche mieux. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Le (on) samedi 01 septembre 2007 10:57, Nicolas George a écrit (wrote) :
> (attention, tes lignes sont un petit peu trop longues) > C'est vraiment trop long 80? Je descend à 76 alors. > mpg wrote in message <fbakkv$so8$1@talisker.lacave.net>: >> >> Quelqu'un sait-il faire ça ? > > Si c'est un GNU iconv: > > iconv -t ASCII//TRANSLIT > Magnifique. C'est exactement ce que je cherchais. > fait ça. Sinon, si tu as un perl 5.8, tu peux utiliser son module Unicode > pour mettre le texte en forme canonique décomposée et enlever les > combinants: > > perl -MUnicode::Normalize -pe 'BEGIN{binmode STDIN, ":encoding(utf-8)"} > $_ = NFD $_; y/[^\x00-\xFF]//cd' > Oki. L'inconvénient par contre c'est qu'il faut que je le note ![]() D'ailleurs, sur un système linux, lequel a-t-on le plus de chances de trouver : Perl 5.8 ou GNU iconv? Et (par curiosité) sur d'autres unix? Manuel. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
mpg wrote:
> Et (par curiosité) sur d'autres unix? Les BSD ont leur propre iconv, mais sans les translitérations. On peut utiliser l'iconv/libiconv GNU sans soucis ceci dit (et même sous Windows). |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Nicolas George wrote:
> Si c'est un GNU iconv: > > iconv -t ASCII//TRANSLIT Mais ça transforme éàéà en 'e`a'e`a, ce qui est laid ama. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Patrick Lamaizière wrote in message <fbbisv$1h4p$1@news.davenulle.org>:
> Mais ça transforme éàéà en 'e`a'e`a Pas chez moi, quelle est ta locale? |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
mpg wrote in message <fbbh86$176p$1@talisker.lacave.net>:
> Magnifique. C'est exactement ce que je cherchais. Pour référence, c'est documenté dans la documentation de la bibliothèque GNU iconv. Mais sur un système GNU, iconv est intégré à la libc, et cette information n'est pas reproduite dans la doc de la libc. > D'ailleurs, sur un système linux, lequel a-t-on le plus de chances de > trouver : Perl 5.8 ou GNU iconv? Les deux. > Et (par curiosité) sur d'autres unix? Plutôt perl 5.8. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Nicolas George wrote:
>> Mais ça transforme éàéà en 'e`a'e`a > > Pas chez moi, quelle est ta locale? fr_FR.ISO8859-15, j'ai toujours eu ce comportement même en passant par la fonction iconv(3). Les translitérations sont définies par le fichier translit.def. (copie ici : <http://user.lamaiziere.net/patrick/translit.txt>; le fichier est en utf-8) Par exemple 'é' est translitéré en « accute e » puis le accute est lui même translitéré en ' (pour l'ascii//TRANSLIT) Je parle de la libiconv GNU : http://www.gnu.org/software/libiconv/ |
|
![]() |
| Outils de la discussion | |
|
|