Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utilitaire de transcription ISO-8859 --> entités Unicode

4 réponses
Avatar
Sergio
Y'a quelqu'un qui a ça ? J'ai du texte écrit en ISO-8859-1 (en fait
tapé sous Windows bêtement) et il le faut absolument en ASCII pur avec
les caractères accentués en entités Unicode (cad é -> é ).

Je suis sous Windows, éventuellement un source en C, je sais le
compiler...

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org

4 réponses

Avatar
Laurent Wacrenier
Sergio écrit:
Y'a quelqu'un qui a ça ? J'ai du texte écrit en ISO-8859-1 (en fait
tapé sous Windows bêtement) et il le faut absolument en ASCII pur avec
les caractères accentués en entités Unicode (cad é -> é ).

Je suis sous Windows, éventuellement un source en C, je sais le
compiler...



Pas testé (tapé au vol), prend les données dans l'entrée standart et
les converti sur la sortie standart :

#include <stdio.h>
#include <ctype.h>
void main(void) {
int c;
while((c = fgetc(stdin))!=EOF) {
if (isprint(c) || isspace(c)) {
fputc(c, stdout);
} else {
fprintf(stdout, "&#x00%02X;", c);
}
}
}

Pour autre chose que du ISO-8859-1, utiliser iconv() au milieu.
Avatar
Pierre Goiffon
[Copie et suivi sur fr.comp.normes.unicode, qui me semble plus indiqué]

Sergio wrote:
Y'a quelqu'un qui a ça ? J'ai du texte écrit en ISO-8859-1 (en fait tapé
sous Windows bêtement) et il le faut absolument en ASCII pur avec les
caractères accentués en entités Unicode (cad é -> &#x00E9; ).

Je suis sous Windows, éventuellement un source en C, je sais le compiler...



Voir la liste des caractères en ISO Latin-1, et comparer les no de
caractères avec les code points Unicode :
http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT

La solution vient vite :)
Une petite moulinette en WSH devrait faire l'affaire.
Avatar
Sergio
Laurent Wacrenier a écrit :

Y'a quelqu'un qui a ça ? J'ai du texte écrit en ISO-8859-1 (en fait
tapé sous Windows bêtement) et il le faut absolument en ASCII pur avec
les caractères accentués en entités Unicode (cad é -> &#x00E9; ).



Pas testé (tapé au vol), prend les données dans l'entrée standart et
les converti sur la sortie standart :

#include <stdio.h>
#include <ctype.h>
void main(void) {
int c;
while((c = fgetc(stdin))!=EOF) {
if (isprint(c) || isspace(c)) {
fputc(c, stdout);
} else {
fprintf(stdout, "&#x00%02X;", c);
}
}
}



! Que n'y ai-je pensé plus tôt !!!

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
loufoque
Sergio a dit le 18/02/2005 à 15:30:

Y'a quelqu'un qui a ça ? J'ai du texte écrit en ISO-8859-1 (en fait tapé
sous Windows bêtement) et il le faut absolument en ASCII pur avec les
caractères accentués en entités Unicode (cad é -> &#x00E9; ).




Voici une solution en PHP [1].
Commence par convertir en UTF-8 (utf8_encode)
Ensuite convertis en Unicode avec utf8_to_unicode
Puis utilise unicode_to_entities_preserving_ascii

[1]
http://www.randomchaos.com/source.php?source=http://www.randomchaos.com%2Flanguage%2Fjapanese-unicode.php