{"id":412,"date":"2024-08-03T14:29:15","date_gmt":"2024-08-03T14:29:15","guid":{"rendered":"https:\/\/habett.fr\/blog\/?p=412"},"modified":"2024-09-05T07:53:35","modified_gmt":"2024-09-05T07:53:35","slug":"hankode","status":"publish","type":"post","link":"https:\/\/habett.fr\/blog\/2024\/08\/hankode\/","title":{"rendered":"Hankode"},"content":{"rendered":"\n<p>J&rsquo;ai longtemps train\u00e9 autour d&rsquo;une solution, passant par des modules hasardeux et des manoeuvres try {} et aujourd&rsquo;hui j&rsquo;en arrive \u00e0 ce point pour n\u00e9gocier les encodages vari\u00e9s, car m\u00eame si l&rsquo;UTF-8 est maintenant dominant, le notepad.exe n&rsquo;enregistre toujours pas par d\u00e9faut ainsi.<\/p>\n\n\n\n<p>C&rsquo;est presque un ha\u00efku:<\/p>\n\n\n\n<p><code>open(T,'&lt;','Any.txt') or die($!);<br>binmode(T);<br>$l = &lt;T>;<br>close(T);<br><strong>if(length($l) == length(decode('utf-8',$l))) {<\/strong><br>   <strong>$l = encode('utf-8',$l);<\/strong><br>}<br>print $l;<\/code><\/p>\n\n\n\n<p>Le binmode ne sert \u00e0 rien mais c&rsquo;est pour montrer l&rsquo;intention.<\/p>\n\n\n\n<p>Enfin, avec HTML::Entities<\/p>\n\n\n\n<p><code><strong>$l = encode('utf-8',decode_entities(decode('utf-8',$l)));<\/strong><\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai longtemps train\u00e9 autour d&rsquo;une solution, passant par des modules hasardeux et des manoeuvres try {} et aujourd&rsquo;hui j&rsquo;en arrive \u00e0 ce point pour n\u00e9gocier les encodages vari\u00e9s, car m\u00eame si l&rsquo;UTF-8 est maintenant dominant, le notepad.exe n&rsquo;enregistre toujours pas par d\u00e9faut ainsi. C&rsquo;est presque un ha\u00efku: open(T,'&lt;&lsquo;,&rsquo;Any.txt&rsquo;) or die($!);binmode(T);$l = &lt;T>;close(T);if(length($l) == length(decode(&lsquo;utf-8&rsquo;,$l))) { &hellip; <a href=\"https:\/\/habett.fr\/blog\/2024\/08\/hankode\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Hankode<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[53,79,63,78],"class_list":["post-412","post","type-post","status-publish","format-standard","hentry","category-encode","tag-dirty","tag-guess","tag-perl","tag-utf8"],"_links":{"self":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/412","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/comments?post=412"}],"version-history":[{"count":3,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/412\/revisions"}],"predecessor-version":[{"id":420,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/412\/revisions\/420"}],"wp:attachment":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/media?parent=412"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/categories?post=412"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/tags?post=412"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}