Encodage caractère

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

malopo
WRInaute discret
WRInaute discret
 
Messages: 61
Inscription: Ven Juil 06, 2007 7:48

Encodage caractère

Message le Dim Sep 30, 2007 18:36

Bonjour,

Quand les utilisateurs entrent des caractères accentués sur mon site, ils ressortent la plupart du temps normalement:
é devient é
mais il arrive que é se transforme en é... je n'arrive pas à savoir pourquoi ça arrive de temps en temps.

Une idée ?


Tilt
WRInaute passionné
WRInaute passionné
 
Messages: 818
Inscription: Sam Mar 26, 2005 11:48

Message le Dim Sep 30, 2007 19:08

C'est trop vague : une url faciliterait la tâche.

malopo
WRInaute discret
WRInaute discret
 
Messages: 61
Inscription: Ven Juil 06, 2007 7:48

Message le Dim Sep 30, 2007 19:17

je ne pense pas que l'url aide, vu que c'est vrai sur toutes les forms du site et ça doit être du à un problème au niveau PHP ou Mysql.

En gros je fais

$texte = htmlentities(mysql_escape_string($_POST['texte']));

puis j'ajoute $texte à la base


à la lecture je fais juste
echo nl2br(stripslashes($texte));

la base est encodée en latin_qqch


Dharius
WRInaute passionné
WRInaute passionné
 
Messages: 631
Inscription: Mer Avr 06, 2005 14:04

Message le Dim Sep 30, 2007 19:23

Exactement le même problème sur mon www aves le nuage de mots clés... étrange


passion
WRInaute accro
WRInaute accro
 
Messages: 2481
Inscription: Ven Jan 06, 2006 20:18

Message le Dim Sep 30, 2007 19:56

Tu dois tout d'abord encoder ta variable de récupération --> urlencode($var);

Puis tu l'utilises via urldecode($var);
Voir doc
http://www.php.net/manual/fr/function.urlencode.php

malopo
WRInaute discret
WRInaute discret
 
Messages: 61
Inscription: Ven Juil 06, 2007 7:48

Message le Dim Sep 30, 2007 20:17

Cette fonction c'est pas plutôt quand on veut passer la variable dans une URL ?


webmasterlamogere
WRInaute accro
WRInaute accro
 
Messages: 1874
Inscription: Dim Déc 17, 2006 21:08

Message le Dim Sep 30, 2007 20:23

Il faut définir dans ton html le code de caractère comme :
Code: Tout sélectionner
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


il faut également que le texte soit dans ce code. Il y a la fonction utf8_decode ou utf8_encode voir iconv.


bproductiv
WRInaute accro
WRInaute accro
 
Messages: 2853
Inscription: Lun Déc 27, 2004 16:29

Message le Lun Oct 01, 2007 8:31

halalala..on lit bien de tout ...
il suffit juste que ta base de donnée et ta page soit encodée pareil..
Déjà ton encodage est 'spécial' au niveau de ta base..
Le mieux c'est de tout faire en utf 8 et tu te pose plus la question après.


Pandore
WRInaute accro
WRInaute accro
 
Messages: 1428
Inscription: Ven Oct 14, 2005 22:38

Message le Lun Oct 01, 2007 18:09

bproductiv a écrit:Le mieux c'est de tout faire en utf 8 et tu te pose plus la question après.

Oui mais cela dépend du public visé. On peut tout aussi bien faire tout en iso-8859-1 pour un site destiné à des francophones par exemple. Cet encodage étant fait pour des caractères de types "Europe de l'ouest".

Ce qu'il faut surtout retenir, c'est ce qu'a dit bproductiv : il faut que l'encodage des caractères de la page web et l'encodage des caractères de la table dans la base de données soient pareils.

:wink:


Tilt
WRInaute passionné
WRInaute passionné
 
Messages: 818
Inscription: Sam Mar 26, 2005 11:48

Message le Lun Oct 01, 2007 19:21

Par défaut, php est conçu pour fonctionner avec ISO-8859-*. Même si certains de mes sites ont besoin d'un charset utf-8, l'architecture est assez différente, c'est pourquoi j'emploie encore un ISO sur tous les sites où utf-8 n'est pas nécessaire.

On peut détecter l'encodage d'une chaîne grâce à mb_detect_encoding, et en fonction de ça, convertir ou non la chaîne en ISO-8859-1 avec iconv ou mb_convert_encoding.

Dans ton cas, je pense que c'est inutile : il doit s'agir d'une erreur d'encodage (meta content type, ou header content type)

Pareil pour toi Dharius, ta page est encodée en ISO-8859-1, et les caractères chinois sont des entités html : pas d'encodage multi-octets utf-8 ou autre.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités