Commande SCRIPT : Sortie UTF-8 Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Bonjour,

je teste la commande "script"
qui permet d'enregistrer dans un fichier (txt)
ce qui se passe sur le terminal


script me renvoie dans mon fichier d'enregistrement des

Code : Tout sélectionner

[C[C[C[C et autres caractères  non-reconnus 



mes variables locales sont :

Code : Tout sélectionner

~$ locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

Comment faire pour enregistrer un fichier de sortie correctement affiché en UTF-8 ?

Merci

@+
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5854
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

Question con: comment sis tu si c'est l'enregistrement qui n'est pas correct, ou bien le logiciel qui te sers à lire cet enregistrement.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

J'ai testé geany, leafpad, less et nano

chacun affiche le résultat à sa façon,
mais aucun n'est vraiment clean,
les applications graphiques sont pires
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

les applications graphiques sont pires
en fait c'est simplement un effet visuel

graphique ou non => c'est la même chose

simplement certains affichent des matrices d'autre des BS ; BEL ; ESC sur fond constrasté
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

avec Geany >> Document >> encodage

j'ai testé :
* sans
* Occidental (4) IBM, Win (2), ISO ..
* unicde (8) UTF-7 ; 8 ; 16xx ; 32xx ; UCS-2xx

C'est partout pareil :(((
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5854
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

que donne le résultat de
file -I fichier.txt
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

piratebab a écrit : 21 avr. 2017, 13:55 que donne le résultat de
file -I fichier.txt
J'ai mis la sortie dans :

https://paste.debian-fr.xyz/?560497720c ... +t7SDSKSU=

au préalable, j'ai refait une fichier neuf avec

Code : Tout sélectionner

$ script
sans aucune option et j'ai exécute la commande

Code : Tout sélectionner

$ locale
pour avoir un contenu.

Geany m'indique un codage = Occidental IBM850
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Comme le pastebin demande un mdp (???)

Je mets le résultat en pièce jointe :
file_result.txt
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5854
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

C'est quoi ce fichier ,
le result de file -I sur le fichier dont tu veux connaître l'encodage ?
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Bonjour

Pour info, le contenu du fichier file_result.txt (téléchargé par le lien présent dans le message précédent)
s'affiche correctement sur ma machine, autant avec un simple cat qu'un less, ou après l'avoir ouvert avec Mousepad 0.3.0

Ce qui d'ailleurs, semble tout à fait logique
quand je constate le retour de la commande suivante :

Code : Tout sélectionner

michel@debg53sw:~$ file ~/Bureau/file_result.txt 
/home/michel/Bureau/file_result.txt: ASCII text
michel@debg53sw:~$ 
Le contenu de ce fichier ne comportant aucun caractère UTF-8
il est donc reconnu comme étant du type ASCII (dont la table de caractères est compatible avec l'UTF-8)
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

piratebab a écrit : 21 avr. 2017, 15:15 C'est quoi ce fichier ,
le result de file -I sur le fichier dont tu veux connaître l'encodage ?
Oui M'sieu ! :icon_mrgreen:

ça n'a pas l'air normal ?
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5854
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

ben non, tu devrais obtenir un truc du genre:
fichier.txt: text/plain; charset=utf-8

tu as bien mis un i majuscule ?
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

mipc

le fichier en cause est la pièce suivante :
typescript.txt
obtenu comme décrit plus haut
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

piratebab a écrit : 21 avr. 2017, 15:30 ben non, tu devrais obtenir un truc du genre:
fichier.txt: text/plain; charset=utf-8

tu as bien mis un i majuscule ?
Non => j'avais lu un L minuscle :)

mais le -I (i) me donne

Code : Tout sélectionner

$ file -I typescript.txt
file: invalid option -- 'I'
Usage: file [-bcEhikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
            [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
       file -C [-m magicfiles]
       file [--help]
ça serait pas le " -i " pour connaître le mime je ne vois pas d'option I (maj) dans Man

Code : Tout sélectionner

$ file -i typescript.txt
typescript.txt: text/plain; charset=utf-8

Oui, ça ressemble plus à ce que l'on attend
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5854
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

toujours lire le man ....
tu as donc bien de l'UTF8, ce sont donc tes outils de lecture qui semblent cafouiller!
Tu ne peux pas leur forcer l'encodage plutot que de les laisser déviner ?
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Je ne comprends pas si c'est un fichier en utf-8
il devrait s'afficher correctement :017:
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

piratebab a écrit : 21 avr. 2017, 15:48 toujours lire le man ....
tu as donc bien de l'UTF8, ce sont donc tes outils de lecture qui semblent cafouiller!
Tu ne peux pas leur forcer l'encodage plutot que de les laisser déviner ?
Si c'est le cas avec Geany, mais ça ne résout rien
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Je viens de tester la commande script sur une autre installation sur une autre machine

=> même résultat ???

Quelqu'un(e) voudrait-il de son côté tester

Code : Tout sélectionner

$ script
puis p.ex :

Code : Tout sélectionner

$ locate
pour mettre qqchose dans le fichier

Code : Tout sélectionner

./typescript
généré dans le répertoire courant


puis ouvrir ce fichier avec un éditeur de texte

et me dire s'il rencontre ce même problème

Merci

PS : avec locale il n'y a pas de caractères "bizarres" dans la réponse de la commande,
mais si on teste avec vdir => il y en a aussi dans la sortie de cette commande
**Simple Utilisateur** -- Debian stable - XFCE
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Dans le fichier téléchargé depuis typescript.txt (dont j'ai copié/collé le lien depuis le message de dezix)
on constate que le premier caractère de la seconde ligne de ce fichier est le caractère d'échappement (hexa) 1b <=> décimal 27 suivit des caractères ]0;
et on retrouve aussi cette même séquence de caractères au début de la 18ème ligne de ce fichier.

Il s'agit de la séquence de caractères qui permet de remettre aux couleurs par défaut, un texte qui avait été colorisé par une autre séquence d'échappement ANSI

Sur la même ligne, un autre caractère de contrôle dont le code hexa est 07 <=> BELL

=======
Il s'agit en fait du prompt PS1 avec ses séquences d'échappement
définies en fonction de l'interpréteur de commandes, de sa configuration,
et des possibilités du terminal d'affichage destiné à recevoir et interpréter ce prompt avec ses caractères d'échappement.

======
Le fichier typescript est une copie brute de ce qui est envoyé à la console,
et on peut d'ailleurs lire dans la page man de la commande script :
man script a écrit :
script fonctionne mieux avec les commandes qui ne manipulent pas l'écran, les résultats cherchent à émuler un terminal brut.
=======
Si j'utilise la commande script sur mon système,
le fichier généré contiendra les caractères de contrôle qui permettent la mise en couleur de mon prompt, (étant donné ma configuration)
Ce qui me permet de le visualiser exactement comme s'il s'agissait d'un copié/collé, mais en couleur.

Par exemple, la commande script enregistrera les séquences de caractères de contrôle qui permettent l'affichage colorisé
de la sortie de la commande ls sur un terminal configuré pour interpréter l'affichage en couleur.
Les noms des répertoires seront affichés en bleu, etc.

Une fois le fichier typescript généré, il suffit de faire un
cat typescript dans le même terminal pour voir l'affichage avec les même couleurs.

=======
Je pense que, en voulant citer la commande

Code : Tout sélectionner

locale
tu as fait une faute de frappe dans ton dernier message : T minuscule au lieu de L minuscule
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Merci MicP pour tes explications :023:

donc (si j'ai pas tout compris de travers)
il n'y a qu'en faisant en sorte que le terminal/système ne génère aucun de ces caractères d'échappement,
que l'on peut éviter de les retrouver dans le résultat de script

Effectivement, j'utilise

Code : Tout sélectionner

alias vdir='vdir --color=auto'
ce qui explique que ces caractères soient présents dans la sortie de vdir puisque l'option de colorisation est activée dans l'alias

Je ne vais pas me donner la peine (en serai-je même capable ?) de reconfigurer le système pour éliminer tous ces caractères à la racine

Je vais donc me résoudre à un traitement a posteriori des fichiers produits pour les supprimer.

Bonne soirée à tous

Je considère le problème comme résolu

@+
**Simple Utilisateur** -- Debian stable - XFCE
Répondre