Godwin> Ils ont utilisé le caractère ASCII étendu n° 146 qui n'est
Godwin> pas présent dans toutes les polices de caractères.
C'est la faute à Word. Je travaillait beaucoup avec mon amie sur son
site web et tout les fichiers qu'elle m'envoyés etaient
contaminés. J'ai ecrit un programme rapide pour convertir l'encodage
Windows 1252 au standard ISO 8859 1 automatiquement. Peut être que ce
programme peut servir à d'autre?
windows1252_to_iso-8859-1.c
------------------------------------------
#include "stdio.h"
char *table [] = {
"euro", /* 0x80 0x20AC #EURO SIGN */
"", /* 0x81 #UNDEFINED */
"\"", /* 0x82 0x201A #SINGLE LOW-9 QUOTATION MARK */
"f", /* 0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK */
"\"", /* 0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK */
"...", /* 0x85 0x2026 #HORIZONTAL ELLIPSIS */
"*", /* 0x86 0x2020 #DAGGER */
"*", /* 0x87 0x2021 #DOUBLE DAGGER */
"^", /* 0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT */
" 0/00", /* 0x89 0x2030 #PER MILLE SIGN */
"S", /* 0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON */
"<", /* 0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK */
"OE", /* 0x8C 0x0152 #LATIN CAPITAL LIGATURE OE */
"", /* 0x8D #UNDEFINED */
"Z", /* 0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON */
"", /* 0x8F #UNDEFINED */
"", /* 0x90 #UNDEFINED */
"'", /* 0x91 0x2018 #LEFT SINGLE QUOTATION MARK */
"'", /* 0x92 0x2019 #RIGHT SINGLE QUOTATION MARK */
"\"", /* 0x93 0x201C #LEFT DOUBLE QUOTATION MARK */
"\"", /* 0x94 0x201D #RIGHT DOUBLE QUOTATION MARK */
"*", /* 0x95 0x2022 #BULLET */
"-", /* 0x96 0x2013 #EN DASH */
"-", /* 0x97 0x2014 #EM DASH */
"~", /* 0x98 0x02DC #SMALL TILDE */
"(TM)", /* 0x99 0x2122 #TRADE MARK SIGN */
"s", /* 0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON */
"\"", /* 0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
"oe", /* 0x9C 0x0153 #LATIN SMALL LIGATURE OE */
"", /* 0x9D #UNDEFINED */
"z", /* 0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON */
"y" /* 0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS */
};
int main (int argc, char **argv) {
FILE *fd;
unsigned char in;
if (argc == 2) {
if ((fd = fopen(argv[1], "r"))) {
while (fread(&in, 1, sizeof(char), fd)) {
if (in >= 0x80 && in < 0xa0) {
printf ("%s", table[in-0x80]);
} else {
printf("%c", in);
}
}
fclose (fd);
}
}
return 0;
}
------------------------------------------------
A+
Ivan
--
/-----------------------------------------------------------------------------*
| "Youth is a wonderful thing. What a crime to waste | Ivan Kanis |
| it on children." | Software Developper |
| (George Bernard Shaw) | www.kanis.cc |
*-----------------------------------------------------------------------------/
Linux-Azur : http://www.linux-azur.org
Désinscriptions: http://www.linux-azur.org/liste.php3
**** Pas de message au format HTML, SVP ****