problème de copier-coller

Startseite

Nachricht beantworten
Autor: Michel Karatchentzeff
Datum:  
To: liste Guilde
Betreff: problème de copier-coller
Subject: problème de copier-coller

Je résume le problème et je fais le point.
Je suis sous sarge noyau 2.6.8-2-k7 ; mon butineur est Mozilla 1.7.8

J'avais un problème lorsque j'essaie de faire un copier-coller depuis mon
navigateur dans un fichier ouvert par vi.

Voici un exemple caractéristique : j'affiche la page :
          http://www.pseudo-sciences.org/article.php3?id_article=171
dont je recopie ci-après les 5 premières lignes pour exposer le problème :


Histoire solaire et climatique
Elizabeth Nesme-Ribes et Gérard Thuillier
Préface de J.-C. Pecker
Collection "Pour la science'
Editions Belin, 2000, 239 pages, 130 E


Un copier-coller dans vi de ces 5 lignes suivantes n'aboutit pas quand
j'utilise la mémoire d'écran et la souris.
Par contre, ligne par ligne, jusqu'à la 4ème qui plante.
Cependant si je fais un copier-coller de chaque mot, ça marche. Ça plante
sur le ' final.

L'astuce de Xavier Bestel de lancer depuis le terminal la commande
      cat >/dev/null
avant de recopier permet de montrer que
       - le problème ne provient pas de l'éditeur ;
       - le système bute sur le caractère '


Xavier donne l'explication du problème :

> Windows a un encodage des caractères appelé windows-1252, qui
> ressemble à s'y méprendre à l'iso-8859-1 (alias iso-latin-1 pour les
> intimes). Les seules différences sont pour certain type de
> guillemets ou d'apostrophes, et peut-être d'autres. Le gros problème
> est Windows annonce à tout le monde que c'est du iso-latin-1.


> Quand tu fais un copier/coller d'une page web win-travestie de la
> sorte vers gnome-terminal, ce dernier va la traduire vers son
> encodage courant (en général utf-8), pour que les 'é' ressemblent
> toujours à des 'é', etc. Il va pour ça regarder quel est l'encodage
> de départ, celui d'arrivée, et va donner le buffer à traduire à
> iconv. Iconv va alors tomber sur l'apostrophe windowsienne et va
> dire "ce caractère n'existe pas en iso-8859-1, je ne sais pas comment
> le traduire en utf-8, je m'arrête là". Et paf.


> La solution ? Je crois que certains navigateurs reconnaissent les
> pages web qui trichent et les convertissent (ou leur donnent le bon
> encodage). Je sais qu'Evolution fait de même pour le mail. Xterm
> ne se pose pas de question et ne fait même pas de ré-encodage (donc
> pas d'erreur possible), mais du coup faut pas toujours espérer avoir
> ses accents.


On pourrait croire que Le problème étant identifié, il suffit de dire à
Mozilla que l'encodage de la page est celui de Windows et refaire le
copier-coller. Mais quand j'impose à Mozilla le code windows 1252, que je
vérifie que c'est comme cela que Mozilla lit la page, ça ne marche pas
mieux.

En résumé, j'ai testé tout cela sur l'exemple ci-dessus dans les 3
types de terminaux que je possède sous X. En voici le résultat :

      copier-coller dans un gnome terminal
       plante sur ' de la quatrième ligne


      copier-coller dans un xterm
       OK, mais élimine le caractère '
       (cat ou vi)


      copier-coller dans un xterm (unicode)
       OK, affiche le caractère ' sous cat
       OK, mais remplace le caractère ' par \xe2\x80\x99 sous vi


Je ne connais pas les différences entre terminaux et je ne suis pas
capable de décortiquer dans chacun d'eux comment agit un copier-coller
(peut-être quelqu'un le sait-il sur la liste ?), mais un pis-aller, en
cas de problème est d'utiliser un terminal unicode.

Michel

-- 
Michel Karatchentzeff
mk@???                            karat@??? 
Fondation Louis de Broglie, 23, rue Marsoulan, 75012 Paris, FRANCE 
http://MichelKaratchentzeff.free.fr


Merci de ne pas ajouter, sauf nécessité, ce message à votre réponse.
Je dispose déjà d'un double.