OVH Cloud OVH Cloud

convertir de ascii à ansi

7 réponses
Avatar
Nicolas.MICHEL
bonjour

ça fait 2 plombes que je cherche un utilitaire pour convertir des
fichiers text de mac à pc.

J'ai trouvé un certain nombre de nom, comme Mac2Dos, mais je ne les
trouve pas ni sur Versiontracker, ni ailleur.

Si je me souviens bien, il y a un utilitaire de conversion de table de
caractères en cli, mais je ne le retrouve pas non-plus.

Merci d'avance
--
Je m'appelles Billy et je suis Funky

7 réponses

Avatar
Pascal Bourguignon
(Nicolas MICHEL) writes:

bonjour

ça fait 2 plombes que je cherche un utilitaire pour convertir des
fichiers text de mac à pc.


PC, ... avec un système Linux? ou FreeBSD? ou Solaris? ou BeoS?

La seule différence entre un fichier ASCII Macintosh et un fichier
ASCII unix (Linux, FreeBSD, Solaris, etc), c'est que les fins de
lignes sont indiquées par un CR sur Macintosh et par un LF sur unix.

Il est donc enfantin de convertir de l'un à l'autre:

tr '12' '15' < fichier-ascii-unix.txt > fichier-ascii-macintosh.text
tr '15' '12' < fichier-ascii-macintosh.text > fichier-ascii-unix.txt

J'ai trouvé un certain nombre de nom, comme Mac2Dos, mais je ne les
trouve pas ni sur Versiontracker, ni ailleur.


Ah! C'est PC MS-DOS que tu veux?

Là, c'est un peu plus compliqué, car MS-DOS utilise deux caractères:
CR,LF pour marquer les fins de lignes.

tr -d '12' < FICHIER-.TXT > fichier-ascii-macintosh.text
awk '{printf "%srn",$0}' < fichier-ascii-macintosh.text > FICHIER-.TXT


Si je me souviens bien, il y a un utilitaire de conversion de table de
caractères en cli, mais je ne le retrouve pas non-plus.


Ah, mais alors c'est pas du tout de la conversion de fichier ASCII que
tu veux ? Faudrait savoir !

Pour convertir l'encodage de fichier texte, on peut utiliser
iconv. C'est inclu dans Fink.

iconv -f CP819 -t MACINTOSH < fichier-macintosh.text > FICHIER-.TXT
iconv -t MACINTOSH -f CP819 < FICHIER-.TXT > fichier-macintosh.text

(en supposant que tu veux la table d'encodage MS-DOS numéro 819).

Sinon le plus simple est d'utiliser TextEdit.app qui est capable de
lire des fichiers textes sous n'importe quel format et encodage et
d'enregistrer sous n'importe quel format et encodage. C'est un peu
compliqué, car il n'indique pas le numéro de CODEPAGE, mais uniquement
des noms, comme: "Turkish (DOS)" ou "Greek (DOS)", mais bon...


--
__Pascal_Bourguignon__
http://www.informatimago.com/

Avatar
Nicolas.MICHEL
Pascal Bourguignon wrote:

(Nicolas MICHEL) writes:

bonjour

ça fait 2 plombes que je cherche un utilitaire pour convertir des
fichiers text de mac à pc.


PC, ... avec un système Linux? ou FreeBSD? ou Solaris? ou BeoS?


[snip les conversions avec tr]
(mais je les garde sous la main, ça servira à une autre occase :)

Bonjour Pascal

Comme le titre le laissait entendre à mon sens, c'est effectivement une
conversion de fichier text mac ASCII (western latin 1 je crois)
vers un fichier text win ansi (western win cp1252, ou un truc du genre)
dont j'ai besoins. C'est pour migrer une centaine de boites eudora de
mac à pc, puis de eudora à outlook, puis de outlook pc à outlook mac.
Dans le genre absurde, on fait pas mieux, mais c'est ainsi :-/

Pour convertir l'encodage de fichier texte, on peut utiliser
iconv. C'est inclu dans Fink.

iconv -f CP819 -t MACINTOSH < fichier-macintosh.text > FICHIER-.TXT
iconv -t MACINTOSH -f CP819 < FICHIER-.TXT > fichier-macintosh.text

(en supposant que tu veux la table d'encodage MS-DOS numéro 819).


Excellent !
Bon, je vais tester cette méthode illico. Merci :)

--
Je m'appelles Billy et je suis Funky


Avatar
Éric Lévénez
Le 18/11/03 10:00, dans <1g4m3bu.18gskpo12p01wsN%,
« Nicolas MICHEL » a écrit :

Comme le titre le laissait entendre à mon sens, c'est effectivement une
conversion de fichier text mac ASCII (western latin 1 je crois)


L'ASCII est un encodage 7 bits sans accent.

Mac OS utilisait un encodage 8 bits le Mac OS Roman.

Windows utilise le Windows Latin 1 (CP 1252).

Aucun des 2 n'est standard, comme peut l'être l'ISO 8859-1 (ISO Latin 1).

Mac OS X utilise le plus souvent l'UTF-8 qui n'est plus de 8 bits car un
caractère peut occuper un ou plusieurs octets.

vers un fichier text win ansi (western win cp1252, ou un truc du genre)
dont j'ai besoins.


--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
Nicolas.MICHEL
Éric Lévénez wrote:

Le 18/11/03 10:00, dans <1g4m3bu.18gskpo12p01wsN%,

Comme le titre le laissait entendre à mon sens, c'est effectivement une
conversion de fichier text mac ASCII (western latin 1 je crois)


L'ASCII est un encodage 7 bits sans accent.

Mac OS utilisait un encodage 8 bits le Mac OS Roman.

Windows utilise le Windows Latin 1 (CP 1252).

Aucun des 2 n'est standard, comme peut l'être l'ISO 8859-1 (ISO Latin 1).

Mac OS X utilise le plus souvent l'UTF-8 qui n'est plus de 8 bits car un
caractère peut occuper un ou plusieurs octets.


Merci pour ces explications :)

Je croyais que ASCII sous-entendait ascii étendu, mais c'est visiblement
pas le cas. Pour eudora, ce doit effectivement être ce Mac OS Roman,
mais par curiosité, par quel moyen peut-on savoir quel encodage a été
utilisé ? Y a-t-il une méthode d'analyse, genre hexdump -c puis une
recherche sur une table, ou un truc du genre ?

--
Je m'appelles Billy et je suis Funky


Avatar
Éric Lévénez
Le 18/11/03 15:35, dans <1g4mlan.16aaxc72rg5xjN%,
« Nicolas MICHEL » a écrit :

Je croyais que ASCII sous-entendait ascii étendu, mais c'est visiblement


Il n'y a pas officiellement d'ASCII étendu, même si certains on fait des
ASCII français ou autre.

pas le cas. Pour eudora, ce doit effectivement être ce Mac OS Roman,
mais par curiosité, par quel moyen peut-on savoir quel encodage a été
utilisé ?


Il n'y a pas de méthode automatique pour trouver un encodage 8 bits, mais en
utilisant TextEdit, on peut demander une ouverture en forçant un encodage
(TeXTEdit en connaît quelques dizaines, et affiche par défaut les plus
connus). Après avoir ouvert les fichier, si les accents passent, c'est
peut-être le bon encodage, mais ce n'est pas sur. Par exemple entre le
Windows Latin 1 et le ISO Latin 1 il y a 32 caractères de différences (je
crois me souvenir), mais comme ils ne sont pas très utilisés, cela ne se
voit pas toujours. Idem entre l'ISO 8859-1 et le ISO 8859-15.

Pour l'ASCII tu peux regarder ici :

<http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/US-ASCII-QUOTES.TXT>

Pour les encodages 8 bits ISO :

<http://www.unicode.org/Public/MAPPINGS/ISO8859/>

Pour les encodages 8 bits Windows :

<http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/>

Pour les encodages 8 bits Macintosh :

<http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>

Pour l'encodage NeXTSTEP 8 bits :

<http://www.unicode.org/Public/MAPPINGS/VENDORS/NEXT/>

Y a-t-il une méthode d'analyse, genre hexdump -c puis une
recherche sur une table, ou un truc du genre ?


Avec hexdump tu peux regarder le code d'un caractère que tu sais être par
exemple "Ê", et après tu recherches dans les tables ci-dessus si tu trouves
le ou les bons encodages.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
Schmurtz
Par exemple entre le
Windows Latin 1 et le ISO Latin 1 il y a 32 caractères de différences (je
crois me souvenir), mais comme ils ne sont pas très utilisés.


C'est même pas qu'ils ont des caractères qui diffèrent, c'est juste que
certains caractères ne sont pas définis dans l'ISO-Latin-1 mais le sont
dans le Windows-Latin-1. Donc du ISO-Latin-1 peut être lu comme du
Window-Latin-1 mais pas le contraire.

--
Schmurtz

Avatar
Nicolas.MICHEL
Éric Lévénez wrote:
[snip]

[pomme-maj-l]

merci :)
c'est très clair.
--
Je m'appelles Billy et je suis Funky