[RESOLU] Problème lors de l'affichage des accents

Eléphanteau du PHP | 12 Messages

09 juin 2016, 12:14

Salutations, j'ai un petit soucis depuis ce matin, au niveau de l'affichage. Pour faire court, je pense avoir tout en Utf-8, mais malgré tout, je n'arrive pas à afficher les accents. Quelques screen vont aider à mieux éclaircir mon soucis :

Image
Image
Image
Image

Ce me serait vraiment d'une grande aide, merci d'avance.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 juin 2016, 12:42

salut,

le texte qui est dans la base il est bien utf-8 ? est ce que ça fait la même chose quand tu regardes les donnés avec pma ?
les données d'origines sont bien en utf-8 ?

Est ce que tu indique bien le charset dans l'entête html ? (dans le formulaire tu peux aussi indiquer le charset à utiliser).
Est ce que tu as configurée le charset lors de la connexion au serveur mysql (SET NAMES 'charset_name')

Est ce que le problème est le même si tu rentres les données à la main dans pma ?


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

09 juin 2016, 14:31

Pour l'affichage des noms, il n'y a pas besoin du formulaire donc le charset est inutile.
Désolé de mon faible niveau, je n'ai pas compris ce qu'il fallait que je fasse pour tester les Utf8 avec Pma
Je peux montrer l'affichage dans la BDD qui s'affiche ainsi : Image

Eléphanteau du PHP | 24 Messages

09 juin 2016, 14:34

Je te met un bout de code que j'ai fais sur une appli à moi pour te montrer.

Code : Tout sélectionner

for($i = 1; $i < count($lieux); $i++) { echo "<option>".utf8_encode($lieux[$i])."</option>"; }
Donc c'est pour remplir une liste déroulante.
Essaye de forcer le utf8 comme ça voir si ça marche.

Eléphanteau du PHP | 12 Messages

09 juin 2016, 14:55

J'ai ajouté Utf8_decode avant ma variable ça me change les losanges pleins en simples "?"
Image
Image
Modifié en dernier par Hakimono le 09 juin 2016, 15:51, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 juin 2016, 15:37

qui y a t'il dans header_mysql.inc.php ? (enlève juste les url / user / mdp)
il manque l'affichage des variables (echo ?) dans le code ci dessus.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

09 juin 2016, 16:07

J'ai ajouté Utf8_decode avant ma variable ça me change les losanges pleins en simples "?"
Image
Image

Pour :
include_once"../admin/include/local/header_connect.inc.php";
include_once"../admin/include/header_mysql.inc.php";

Les deux sont intouchables, je ne peux pas faire bdd <-- ...
Je suis obligé de passer par ces deux includes.

Mammouth du PHP | 1967 Messages

09 juin 2016, 16:21

essaye plutot utf8_encode() si tu veux un affichage en utf8
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 juin 2016, 16:23

la solution rapide
=> modifier les données en ajoutant les entités html à la palce des caractère (&eacute; par exemple pour le é). ce n'est pas super satisfaisant.

Peux tu modifier l'encodage du navigateur (par exemple pour firefox, dans le menu view => text encoding, chrome : menu => plus d'outils => codage).
essai en iso voir si cela s'affiche correctement

Je pense que tu as des caractères iso dans la base ou que la connexion mysql est en iso.
As tu essayé d'ajouter la requête set names 'utf8' ?

tu ne peu pas modifier le fichier /admin/include/header_mysql.inc.php ?
Même pas regarder ce qu'il y a dedans ?
c'est pas pratique ;)

sans oublier la solution de spols


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

09 juin 2016, 16:27

Problème résolu, merci à tous ! :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 juin 2016, 16:36

peut tu donner ta solution pour aider ceux qui peuvent avoir le même problème que toi ? (utf8_encode ?)

Merci
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

10 juin 2016, 09:45

<tr>

<td align="center"><?php echo utf8_encode("$facture_client_societe") ;?> </td>
<td align="center"><?php echo round($ca_client_tab['total'],2) ?> €</td>
<td align="center"><?php echo round($ca_client_tab['total']*100/120,2); ?> €</td>

</tr>

En fait j'utilisais une boucle plus haut, qui contenait également "utf8_encode" ce qui fait qu'il était traité deux fois, j'ai simplement eu à supp la boucle :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 juin 2016, 10:35

merci !
Il en faut peu pour être heureux ......