[RESOLU] Ecriture utf8 en base

Avatar du membre
Mammouth du PHP | 1609 Messages

07 août 2019, 14:38

Oué, comme si htmlentities travaillait en ISO-8859-1 alors qu'en l’occurrence il serait sensé travailler en UTF-8 étant donné la valeur de ini_get('default_charset').
https://www.php.net/manual/fr/function.htmlentities.php troisième paramètre $encoding
https://www.php.net/manual/fr/function.utf8-decode.php Convertit une chaîne UTF-8 en ISO-8859-1

PS : si tu fais un locale -a en ssh tu as bien de l'UTF-8 dans la liste ?

PPS : à moins que tu ais une version php < 5.4 alors là ça explique tout, le charset de htmlentities est par défaut l'ISO-8859-1. Et dans ce cas il faudrait faire du htmlentities($string, ENT_COMPAT, 'UTF-8'). C'est important de bien lire la documentation des fonctions. ^^

Si omis, la valeur par défaut du paramètre encoding varie suivant la version PHP utilisée. En PHP 5.6.0 et suivants, l'option de configuration default_charset sera utilisée comme valeur par défaut. En PHP 5.4 et 5.5, UTF-8 sera la valeur par défaut. Pour les versions plus anciennes, PHP utilisera ISO-8859-1.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 40 Messages

07 août 2019, 15:05

Tu me régales !

Oui tout bon niveau système et des locales.

Version de php 5.3.3

Je comprends mieux, je vais essayer ENT_COMPAT, 'UTF-8' pour voir

Avatar du membre
Mammouth du PHP | 1609 Messages

07 août 2019, 15:12

D'après la doc le flags par défaut c'est plutôt ENT_COMPAT | ENT_HTML401
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 40 Messages

07 août 2019, 15:31

Idem :
Saïan,

J'ai effectivement viré les htmlentities, sur certain champs et ça à l'air de marcher nickel....
Je te reconfirme en allant un peu plus loin dans la supression des htmlentities