[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Encodage de fichiers provenant de système Microsoft



salut,

> > 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.

c'est ce que disait Nicolas: c'est pas le FS qui est pas utf-8 mais le
nom du fichier qui est probablement en latin9.


> > 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.

avec xxd c'est plus simple a expliquer:

* un charmap une chaine de caractère, c'est une suite d'octets (souvent
  1 seul octet) associée à un symbole.  quand tu as le problème que tu
* as eu, c'est tout simplement que 2 outils n'utilisent pas le meme charmap
* du coup, regarder la valeur de l'octet et trouver le charmap dans
  lequel ca correspond à la valeur attendue permet souvent de trouver
  une solution

echo -n steve|xxd -b -c1

00000000: 01110011  s
00000001: 01110100  t
00000002: 01100101  e
00000003: 01110110  v
00000004: 01100101  e

sauf que tous ces bits, c'est compliqué et long a lire ou a memoriser
alors on utilise une autre notation (hexadecimale) qui a une propriété
intéressante: on peut regrouper les bits par 4 pour 1 seul symbole
hexa.

voilà une table de conversion decimal/hexa/ascii

    00 00 0000000000
    01 01 0000000001
    02 02 0000000010
    03 03 0000000011
    04 04 0000000100
    05 05 0000000101
    06 06 0000000110
    07 07 0000000111
    08 08 0000001000
    09 09 0000001001
    10 0a 0000001010
    11 0b 0000001011
    12 0c 0000001100
    13 0d 0000001101
    14 0e 0000001110
    15 0f 0000001111
    16 10 0000010000
    17 11 0000010001
    18 12 0000010010
    19 13 0000010011
    20 14 0000010100

du coup le s par exemple:

    0111 => 7
    0011 => 3

echo -n steve|xxd -b -c1

00000000: 73  s
00000001: 74  t
00000002: 65  e
00000003: 76  v
00000004: 65  e

> > va renommer 北亰.pdf et تج.xls en Bei Jing .pdf et tj.xls

> Un mv le permet aussi presque toujours.

oui mais avec mv t'es obligé de deviner le nom des symboles.

bon de toute façon ca colle plus trop puisque comme le signalait
Nicolas: le problème est l'exact inverse: c'est ton fichier qui est
nommé avec des caractères non-utf.

a+
marc


Reply to: