|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 65 ![]() |
Bonjour,
Etant en train de réaliser un petit jeu du pendu (pour un site d'école) je me trouve devant un problème bizarre, et après deux jour de recherche infructueuse et de multiple test je ne sais plus quoi faire voila le contexte: 1) j'ai une table qui contient les mots: Citation:
A la base j'utilisai la fonction Code :
if(substr($_SESSION['mot'],$j,1)==$_GET['lettre']) Code :
Par contre si je met un é ou à ou ç dans un array() dès le départ (ou en utilisant la fonction explode) alors la pas de problèmes je les réaffiche bien correctement. (voir image en pj) Je précise que concernant la configuration tout est en UTF-8 BD,MYSQL,PAGE,(y compris apache pour ce site via le httpd.conf). J'ai aussi fait d'autre test en jouant avec les fonctions mb_... en forçant le mb_internal_encoding('UTF-8'); de php mais toujours le même résultat (hormis le comptage par mb_strlen($var) qui retourne bien le bon nombre de caractères. |
|||
|
|
00
|
|
|
#2 | |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 242 ![]() |
Citation:
Si ce n'est déjà fait essayes en haut dans ton code php Code :
header( 'content-type: text/html; charset=utf-8' ); ou (suivant la version de mysql et de php) une requête avec
__________________
- Réalisations - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical. |
|
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 65 ![]() |
re,
Oui c'est aussi ce que j'ai pensé au début donc j'ai complété mon test avec des mots rentré directement dans le code (et j'avais aussi essayé le coup du header() car j'avais ton lien dans mes tablette, mais rien n'y fait exemple avec cette autre test fait: Code :
voir image en pj |
||
|
|
00
|
|
|
#4 |
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 2 335 ![]() |
Salut,
tu peux toujours trouver des conseils pour les problèmes d'encodage dans l'article Comment encoder votre site intégralement en UTF-8.
__________________
Développeur | Zend Certified Engineer Étapes Pour mieux se servir du forum: 1. Commencez par lire les cours et tutoriels ; 2. Faites une recherche; 3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles; Nix>_Rien n'est plus pratique que la théorie |
|
|
00
|
|
|
#5 | |
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 65 ![]() |
re,
Citation:
|
|
|
|
00
|
|
|
#6 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Il faudrait peut être indiquer que c'est de l'UTF-8 :
* les fonctions mbstring : il faut le préciser en paramètre sinon en faire la déclaration préalable via mb_internal_encoding('UTF-8') * htmlspecialchars : nom de l'encodage en 3e paramètre Mais surtout ceci est faux : Avec [index] vous accédez à un octet de la chaîne. Or UTF-8 représente un caractère Unicode sur 1 à 4 octets, donc c'est parfaitement normal d'obtenir cette sortie incohérente si vous découpez sur les unités de code au lieu des points de code. Il faut passer par mb_substr ou mb_split par exemple, comme vous le faisiez plus tôt d'ailleurs, pour justement passer cette "limitation" de PHP. |
|
|
00
|
|
|
#7 | |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 242 ![]() |
Ah oui, julp a bien vu le pb. C'est ton test qui est incorrect ! Pour faire des choses assez similaires, tu peux regarder les messages de contribution dans cette page.
A noter qu'il y a aussi la fonction strtr (assez couramment employée dans d'anciens scripts) qui pose problème avec l'utf8, à remplacer par str_replace. Concernant htmlspecialchars, bien qu'il soit recommandé de spécifier l'encodage comme pour toutes les fonctions travaillant sur les chaines de caractères, si tu utilise l'utf-8 tu n'es pas obligé de le faire car cela ne pose généralement aucun problème pour cette fonction (aucun connu pour l'instant). Citation:
__________________
- Réalisations - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical. |
|
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : mars 2005 Messages : 65 ![]() |
Re,
Effectivement la seul fonction qui m'a échappé dans les mb_xxx alors que c'était bien d'elle d'on j'ai besoin (d'autant que comme j'ai mon propre serveur j'ai configuré le mb_internal_encoding() en UTF-8 par défaut sur le serveur). Merci à vous tous. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com