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

Deep structure JSON

J’aime bien le JSON mais je dois avouer que quand il s’agit de traiter des structures plus profondes (au delà des tables et des listes, et surtout les cas où la profondeur est variable (exemple: JORF), je suis assez démuni alors que je n’ai pas du tout ce problème avec du XML où il est facile de naviguer entre enfants et parents, etc.

J’avais fais des essais avec JSON::XPath et autres mais la syntaxe me dépasse car j’y vois des tonnes de confusions avec le XPath du XML (notamment à propos de la notion de. parent). Plutôt que de me prendre la tête , je me suis mis à chercher un convertisseur JSON vers XML.

Trouvé ici : https://stackoverflow.com/questions/17398601/how-to-create-xml-from-json-string-in-perl

use JSON::Any;
use XML::Simple;

my $convertor = JSON::Any->new();
my $data = $convertor->decode($json);
my $xml = XMLout($data);

J’adore!


Deep structure JSON