Hankode

J’ai longtemps trainé autour d’une solution, passant par des modules hasardeux et des manoeuvres try {} et aujourd’hui j’en arrive à ce point pour négocier les encodages variés, car même si l’UTF-8 est maintenant dominant, le notepad.exe n’enregistre toujours pas par défaut ainsi.

C’est presque un haïku:

open(T,'<','Any.txt') or die($!);
binmode(T);
$l = <T>;
close(T);
if(length($l) == length(decode('utf-8',$l))) {
$l = encode('utf-8',$l);
}
print $l;

Le binmode ne sert à rien mais c’est pour montrer l’intention.

Enfin, avec HTML::Entities

$l = encode('utf-8',decode_entities(decode('utf-8',$l)));


Hankode

Dirty MSWord

Je déteste MSWord mais il a une sorte de magie à l’usage: Alors que la structure de ses formats récents est un encapsulage d’XML dans une archive, il trouve le moyen de produire des documents HTML non valides: pas de xhtml signifie qu’il trouve le moyen de faire faire du sale avec du propre ce qui est absolument remarquable du point de vue informatique. Bref, tagsoup !

Microsoft: plus d’avocats que de programmeurs (comme le dit l’adage des temps anciens)


Dirty MSWord