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)));

Une réflexion sur « Hankode »

  1. Claude suggère:
    use Encode::Guess;
    my $decoder = Encode::Guess->guess($contenu, ‘utf-8’, ‘latin-1’, ‘cp1252’);
    if($decoder) {
    $contenu = decode($decoder->name,$contenu);
    }

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution 4.0 International License.