PHP et UTF-8
4 messages
• Page 1 sur 1
-

ecocentric - WRInaute accro

- Messages: 3602
- Inscription: 10 Fév 2004
PHP et UTF-8
Bonjour,
Je travaille actuellement sur deux sites en UTF-8.
Le premier, pas de problème. Le second: une section est problématique au niveau de l'encodage.
J'y fais des manipulations sur des chaînes de caractères. Je constate que les caractères accentués passent mal avec strlen et strtolower, m'obligeant à recourir à mb_strlen et mb_strtolower. Pire, un accès au premier caractère d'une chaîne par $chaine[0] me retourne un caractère erroné, m'obligeant à utiliser mb_substr...
Pouvez-vous me dire si je m'y prends mal (par exemple: un paramètre de configuration PHP qui m'aurait échappé) ou si cette manière de procéder est normale?
D'avance, je vous remercie.
Je travaille actuellement sur deux sites en UTF-8.
Le premier, pas de problème. Le second: une section est problématique au niveau de l'encodage.
J'y fais des manipulations sur des chaînes de caractères. Je constate que les caractères accentués passent mal avec strlen et strtolower, m'obligeant à recourir à mb_strlen et mb_strtolower. Pire, un accès au premier caractère d'une chaîne par $chaine[0] me retourne un caractère erroné, m'obligeant à utiliser mb_substr...
Pouvez-vous me dire si je m'y prends mal (par exemple: un paramètre de configuration PHP qui m'aurait échappé) ou si cette manière de procéder est normale?
D'avance, je vous remercie.
-

antinomx - WRInaute occasionnel

- Messages: 277
- Inscription: 23 Aoû 2008
Re: PHP et UTF-8
Salut,
T'as réussi à localiser à cause de quoi cette section est problématique ? Par rapports aux autres ? C'est quoi son fonctionnement ? Inclusion d'un fichier (peut être encodé différemment) ? Récupération de données externes au site ?
En général utf8_encode() et assimilées sont tes amies dans ces cas la...
T'as réussi à localiser à cause de quoi cette section est problématique ? Par rapports aux autres ? C'est quoi son fonctionnement ? Inclusion d'un fichier (peut être encodé différemment) ? Récupération de données externes au site ?
En général utf8_encode() et assimilées sont tes amies dans ces cas la...
-

Toma - WRInaute discret

- Messages: 208
- Inscription: 18 Jan 2006
Re: PHP et UTF-8
Ça me parait normal que tu doives utiliser les fonctions avec le préfixe mb_.
Les fonctions sans le mb_ travaillent sur des caractères à un ou deux octets (je ne me souviens plus), ce qui fait que quand tu les appliques sur de l'UTF-8 elles font n'importe quoi s'il y a des caractères faisant plus d'octets (3 ou 4) (ce qui est possible avec utf-8 mais pas en ISO-8859).
Je garantis pas l'explication, mais je crois que c'est ça l'idée
Les fonctions sans le mb_ travaillent sur des caractères à un ou deux octets (je ne me souviens plus), ce qui fait que quand tu les appliques sur de l'UTF-8 elles font n'importe quoi s'il y a des caractères faisant plus d'octets (3 ou 4) (ce qui est possible avec utf-8 mais pas en ISO-8859).
Je garantis pas l'explication, mais je crois que c'est ça l'idée
- Sir Dipp
- WRInaute passionné

- Messages: 1025
- Inscription: 21 Juil 2003
Re: PHP et UTF-8
Le problème d'encodage peut venir de différentes sources. Par exemple, la source des données (est-ce qu'elles viennent de la base de donnée et est-ce que la base de donnée est en UTF-8 ?)
Il y a également le fichier script, est-ce qu'il est bien en UTF-8 Plain, cela peut jouer également.
Après finalement, il y a les fonctions PHP qui elles ne sont pas en UTF-8 et qui t'obligent effectivement à utiliser la librairie MB String. Mais avec PHP6 ça sera fini, UTF-8 en natif (enfin).
a++
Il y a également le fichier script, est-ce qu'il est bien en UTF-8 Plain, cela peut jouer également.
Après finalement, il y a les fonctions PHP qui elles ne sont pas en UTF-8 et qui t'obligent effectivement à utiliser la librairie MB String. Mais avec PHP6 ça sera fini, UTF-8 en natif (enfin).
a++
4 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
