Encodage de fichiers provenant de système Microsoft

12 réponses
Avatar
steve
Salut,

Je reçois des fichiers contenant de accents:

$ ls -l
'comit+'$'\256'' de pilotage.pdf

$ file *
comit+? de pilotage.pdf : PDF document , version 1.7

Je peux créer un fichier avec accent sans problème:

$ touch comité.txt
$ ls -l
comité.txt
$ echo 'c'est encore l'été' > comité.txt

$ file *
comité.txt: UTF-8 Unicode text


Comment puis-je enregistrer ces fichiers de mon client de messagerie
(mutt) sans avoir ces caractères bizarres ?

Merci

S

10 réponses

1 2
Avatar
Samy (Zaclys)
Bonjour,
Le 17/09/2020 à 08:36, steve a écrit :
[...}
Comment puis-je enregistrer ces fichiers de mon client de messagerie
(mutt) sans avoir ces caractères bizarres ?

Je ne sais pas pour Mutt, mais si une conversion a posteriori te
convient, tu peux utiliser |convmv.|
|Par exemple, pour un lot de fichiers issus d'un fichier zip, encodés
sous Windows et à encoder en UTF-8 :|
||convmv -f latin9 -t utf8 -r . --notest||
||
||
||Samy
||
Avatar
steve
Salut,
Le 17-09-2020, à 16:01:42 +0200, Samy (Zaclys) a écrit :
Comment puis-je enregistrer ces fichiers de mon client de messagerie
(mutt) sans avoir ces caractères bizarres ?

Je ne sais pas pour Mutt, mais si une conversion a posteriori te
convient, tu peux utiliser |convmv.|

En fait ça n'a rien à voir avec mutt (je m'en suis aperçu après avoir
envoyé mon message initial) puisque le même fichier déposé sur
un serveur externe et téléchargé via un navigateur affiche le même
problème.
J'essaie de comprendre quel est l'encodage du fichier pdf mais je
n'arrive pas à trouver comment. La commande « file » dit simplement que
c'est un fichier pdf de version 1.7.
Une (autre) idée ?
Merci
Avatar
Dominique Dumont
On Friday, 18 September 2020 15:46:32 CEST steve wrote:
J'essaie de comprendre quel est l'encodage du fichier pdf mais je
n'arrive pas à trouver comment. La commande « file » dit s implement que
c'est un fichier pdf de version 1.7.

Je crois que tu confonds l'encodage du nom du fichier (i.e. le problèm e est
visible avec la commande ls) et l'encodage du contenu (résultat de la commande
file).
Pour le contenu du pdf, je ne sais pas comment est géré l'encodag e.
HTH
Avatar
steve
Le 18-09-2020, à 16:46:27 +0200, Dominique Dumont a écrit :
On Friday, 18 September 2020 15:46:32 CEST steve wrote:
J'essaie de comprendre quel est l'encodage du fichier pdf mais je
n'arrive pas à trouver comment. La commande « file » dit simplement que
c'est un fichier pdf de version 1.7.

Je crois que tu confonds l'encodage du nom du fichier (i.e. le problème est
visible avec la commande ls) et l'encodage du contenu (résultat de la commande
file).

Bien possible :)
J'ai essayé:
$ uchardet 'fichier.pdf'
unknown
$ enca -d -L none 'fichier.pdf'
fichier.pdf: Unrecognized encoding
Failure reason: Multibyte tests failed, language contains no 8bit charsets.
Je sèche…
Avatar
Dominique Dumont
On samedi 19 septembre 2020 09:55:49 CEST steve wrote:
Je sèche…

En relisant le fil des messages, j'ai l'impression que le contenu du pdf n' est
pas en cause. Seul l'encodage du nom du fichier écrit par mutt pose pr oblème.
Hypothèse:
- le fichier pdf reçu par mail a un nom de fichier encodé en is o-8859-1 ou
windows-1252
- mutt écrit ce fichier dans ton directory sans se préoccuper d e l'encodage du
nom de fichier.
Faut regarder les options de mutt pour vérifier comment il gère les encodages
des attachements MIME.
Là, je ne peux plus aider car je n'utilise pas mutt.
Dod
Avatar
steve
Hello Marc,
Le 19-09-2020, à 15:49:13 +0200, Marc Chantreux a écrit :
salut steve,
je prend le thread un peu tard (week end) mais si même Dominique ne peut
pas t'aider je veux bien tenter ma chance ;)

Cool :)
le plus simple si rien n'est confidentiel c'est que tu me transfère le
message en pj:

Nan, ça je ne peux pas faire, c'est confidentiel.
Par contre je répète, car apparemment c'est passé au travers des mailles, mutt
n'a rien à voir car le fichier en question est déposé sur un serveur de
partage. Désolé pour ça.
$ ls -l
'comit+'$'256'' de pilotage.pdf

bon .. c'est problablement une sortie étrange de bash...
$ ls -l | od -t x1
me parlerais plus

Alors voici la sortie:
0000000 2d 72 77 2d 72 2d 2d 72 2d 2d 20 31 20 73 74 65
0000020 76 65 20 73 74 65 76 65 20 35 35 30 31 37 35 39
0000040 20 73 65 70 20 31 37 20 30 36 3a 32 37 20 43 6f
0000060 6d 69 74 2b ae 5f 64 65 70 69 6c 6f 74 61 67 65
0000100 5f 4a 75 69 6c 6c 65 74 5f 32 30 32 30 2e 70 64
0000120 66 0a
0000122
Moi ça ne me parle pas du tout ;)
Toi ?
Avatar
Marc Chantreux
Par contre je répète, car apparemment c'est passé au tra vers des mailles, mutt
n'a rien à voir car le fichier en question est déposé su r un serveur de
partage. Désolé pour ça.

je viens de reprendre l'archive ... effectivement: j'avais pas lu cette
réponse.
ben du coup c'est pas ton fs qui supporte pas les caractères utf8 da ns
le fichier?
$ ls -l | od -t x1
me parlerais plus
Alors voici la sortie:
0000000 2d 72 77 2d 72 2d 2d 72 2d 2d 20 31 20 73 74 65
0000020 76 65 20 73 74 65 76 65 20 35 35 30 31 37 35 39
0000040 20 73 65 70 20 31 37 20 30 36 3a 32 37 20 43 6f
0000060 6d 69 74 2b ae 5f 64 65 70 69 6c 6f 74 61 67 65
0000100 5f 4a 75 69 6c 6c 65 74 5f 32 30 32 30 2e 70 64
0000120 66 0a
0000122
Moi ça ne me parle pas du tout ;)
Toi ?

43 6f 6d 69 74 2b ae 5f 64 65 70 69 6c 6f 74 61 67 65
C o m i t ????? _ d e p i l o t a g e
c'est ce que ls affiche. 2b ae est donc la représentation que ls fa it
de ton char foireux et j'espérais pouvoir en faire quelque chose pou r
écrire une macro mutt.
puisque ta question n'est finalement pas spécifique mutt, la ré ponse de
samy est la bonne à moins que tu ne souhaites tout simplement virer
tous les chars autres que ceux de l'ascii standard. auquel cas tu peux
jouer avec l'excellent module Text::Unidecode.
perl -CA -MText::Unidecode -E'
map { rename $_, unidecode $_ } @ARGV
' "北亰.pdf" "تج.xls"
va renommer 北亰.pdf et تج.xls en Bei Jing .pdf e t tj.xls
cordialement,
marc
Avatar
steve
Le 20-09-2020, à 15:38:28 +0200, Marc Chantreux a écrit :
Par contre je répète, car apparemment c'est passé au travers des mailles, mutt
n'a rien à voir car le fichier en question est déposé sur un serveur de
partage. Désolé pour ça.

je viens de reprendre l'archive ... effectivement: j'avais pas lu cette
réponse.
ben du coup c'est pas ton fs qui supporte pas les caractères utf8 dans
le fichier?

Si si, tout mon système est en UTF-8.
$ ls -l | od -t x1
me parlerais plus
Alors voici la sortie:
0000000 2d 72 77 2d 72 2d 2d 72 2d 2d 20 31 20 73 74 65
0000020 76 65 20 73 74 65 76 65 20 35 35 30 31 37 35 39
0000040 20 73 65 70 20 31 37 20 30 36 3a 32 37 20 43 6f
0000060 6d 69 74 2b ae 5f 64 65 70 69 6c 6f 74 61 67 65
0000100 5f 4a 75 69 6c 6c 65 74 5f 32 30 32 30 2e 70 64
0000120 66 0a
0000122

Moi ça ne me parle pas du tout ;)
Toi ?

43 6f 6d 69 74 2b ae 5f 64 65 70 69 6c 6f 74 61 67 65
C o m i t ????? _ d e p i l o t a g e
c'est ce que ls affiche. 2b ae est donc la représentation que ls fait
de ton char foireux

Je ne sais pas comment tu es arrivé à cette conclusion mais je te crois
sur parole  ;-)
et j'espérais pouvoir en faire quelque chose pour
écrire une macro mutt.
puisque ta question n'est finalement pas spécifique mutt, la réponse de
samy est la bonne à moins que tu ne souhaites tout simplement virer
tous les chars autres que ceux de l'ascii standard. auquel cas tu peux
jouer avec l'excellent module Text::Unidecode.
perl -CA -MText::Unidecode -E'
map { rename $_, unidecode $_ } @ARGV
' "北亰.pdf" "تج.xls"
va renommer 北亰.pdf et تج.xls en Bei Jing .pdf et tj.xls

Hum…
Un mv le permet aussi presque toujours.
Merci pour ton intérêt.
Steve
Avatar
steve
Salut Marc,
Merci pour ce petit cours accéléré :)
Beaucoup plus clair maintenant.
Comme je l'ai dit dans un autre message, je vais voir en amont si on
peut faire quelque chose.
Encore merci !
S
Avatar
Francois Meyer
Bonjour à tous
Quelqu'un aurait-il compris le rapport entre l'utilisateur root unix et
l'utilisateur root de mysql/mariadb ? J'y perds mon latin.
Je croyais qu'il n'y avait aucun rapport, eh ben si : quand je suis root
unix (avec sudo), je peux me connecter en tant que root sql, autrement,
non (access denied, le password root que j'ai saisi à l'installation
n'est pas reconnu).
Bonne journée
François
1 2