Suivez les fils RSS
 
Auteur
Vaxilart
# 12 Mar 2010 - 22:28:20
Citer
516 Posts
Bonjour,

Je travaille sur un système d’administration pour un site. À date tout va bien sauf l’encodage des caractères passant par le PHP (c’est ma première expérience en php, et étrangement tout le reste marche bien – allez savoir!)

Donc, je ne veux pas faire trop compliquer, mais je vais exposer les comportements :

-Le html est en UTF-8 – Tout marche à ce niveau
-Mes tables Mysql sont en encodage utf-8, et tout marche lorsque j’enregistre une donnée dans mes tables via un formulaire html. Donc, les données enregistrées s’affiche correctement lorsqu’elles sont appelés ensuite.

Cependant, deux comportements posent problèmes :
-Lorsque je rentre directement les donnés via Phpmyadmin.
-Lorsque du texte est envoyé par un echo.

Le problème d’encodage touche les caractères comme les a ou le e accentuées qui sont remplacé par des losanges noir avec un point d’interrogation.

Donc, je présume que le problème vient des paramètres du pré-processeur PHP (en passant, j’utilise wamp pour les tests en réseau local)…

Merci pour votre aide!
Modifié par Vaxilart (13 Mar 2010 - 05:25)

http://simonboudrias.com 
^
Heyoan
# 12 Mar 2010 - 23:12:45
Citer
Modérateur
8101 Posts
Salut,

pour commencer je t'invite à lire Comment bien déclarer l'encodage des caractères d'une page.

Ensuite si tout est bien en utf8 c'est sûrement qu'il faut également définir l'encodage de la connexion : juste après la sélection de la base le plus simple est de faire
mysql_query("SET NAMES 'utf8'");
Ou alors
mysql_set_charset('utf8'); 


^
Vaxilart
# 12 Mar 2010 - 23:32:18
Citer
516 Posts
Salut, je crois bien que l'encodage est bien déclaré (le texte contenu simplement dans la page web est bien affiché). Je copie quand même le head au cas où:

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<link rel="stylesheet" media="all" href="style/admin.css" />
</head>


J'ai essayé tes deux solutions, à prime abord ça semble marcher mais seulement sur les informations venant des requêtes au serveur. Les echo affichent encore des losanges noirs à la place des caractères accentués.

http://simonboudrias.com 
^
Heyoan
# 13 Mar 2010 - 01:27:16
Citer
Modérateur
8101 Posts
A priori les losanges noirs correspondent à du latin1 servi en tant qu'utf-8. Tes pages sont bien enregistrées en utf8 ?

^
Vaxilart
# 13 Mar 2010 - 05:24:45
Citer
516 Posts
Ah! Mon dieu, Merci! biggrin


J'avais codé mes pages de gestion PHP sur mon portable, et je n'avais pas pensé à faire mes réglages d'encodage sur ce pc là!

C'est bon: [résolu]

http://simonboudrias.com 
^
Heyoan
# 13 Mar 2010 - 16:08:01
Citer
Modérateur
8101 Posts
Vaxilart a écrit :
Ah! Mon dieu, Merci!
Boaf ! Tu peux m'appeler Heyoan va ! lol

^