Lightroom, iptc, php et caractères accentués

martin&co

Membre confirmé
6 Juillet 2008
21
1
58
Bonjour,

Un petit script php permet d'extraire certaines données iptc des images exportées via LR (jpg).
Le voici :
<?php
$size = getimagesize("image.jpg", $info);
if (isset($info["APP13"])) {
$iptc = iptcparse(utf8_decode($info["APP13"]));
var_dump($iptc);
}
?>

Problème : tous les caractères accentués ne sont pas affichés correctement malgré le utf8_decode.
Quelqu'un aurait-il une solution ? Je galère depuis 2 jours !

PS : pour ceux que cela intéresse, je peux vous transmettre la liste les champs iptc de LR que l'on peut extraire par iptcparse.

Merci aux bonnes âmes charitables.
 
Est-ce que tu es sûr que le utf8_decode est approprié ici ? Je veux dire, es-tu sûr qu'à la base ta chaîne $info["APP13"] est en UTF8 et pas dans un autre jeu de caractère ? La fonction PHP iconv peut peut-être t'aider dans ce sens.
 
Bonjour Silver,

J'ai essayé avec iconv, mais le problème c'est que je ne connais pas l'encodage de départ.
J'ai testé :
UTF-8 vers ISO-8859-1, en inversement
ASCII vers UTF-8
ASCII vers ISO-8859-1
etc.
bref aucun de fonctionne.

J'ai l'impression que l'information d'encodage des caractères dans le fichier (l'image) n'est pas indiqué, résultat le parseur iptc de php ne sait pas comment ils ont été encodés (et nous non plus par la même occasion).

D'ailleurs en utilisant la fonction php mb_detect_encoding j'ai des résultats assez étranges :
si le champs ne contient pas de caractère accentué j'ai ASCII comme résultat
si le champs contient au moins 1 caractère accentué j'obtiens UTF-8
si j'utilise "auto" la réponse est qu'il ne reconnait pas l'encodage

Je crois donc que le parseur iptc de php y perd son latin !

En tout cas merci de ta réponse, si tu as d'autres idées...:zen:
 

Sujets similaires

Réponses
4
Affichages
1K
macOS
Membre supprimé 1060554
M