5546 sujets

Sémantique web et HTML

Bonjour à toutes et à tous,

J'administre un site sous Prestashop et j'ai un souci avec un module de chat. Quand je suis hors-ligne et que les utilisateurs m'envoient un message via la fenêtre de chat, je reçois un mail. Si il y a des accents, j'ai des à é â.
J'en ai donc conclu que c'était un problème d'encodage des caractères.
J'ai réussi à trouver le fichier HTML qui est envoyé.
Le voici (brut de décoffrage) :
Name: {name}<br>
Email: {email}<br>
Phone: {phone}<br>
Department: {department}<br>
Question: {question}<br>
Current URL: {current_url}
IP address: {ip_address}<br>


Comme vous pouvez le voir, il n'y a pas d'entête. En revanche, il y a des variables entre les accolades. Autre chose aussi, le fichier est enregistré avec l'encode ANSI.

J'ai donc modifié le code pour que les accents apparaissent correctement :
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta charset="UTF-8">
 </head>
 <body>
Nom : {name}<br>
Email: {email}<br>
Téléphone: {phone}<br>
Service : {department}<br>
Question : {question}<br>
URL active : {current_url}<br>
Adresse IP : {ip_address}<br>
</body>
</html>

Je l'ai enregistré avec l'encodage ANSI (j'expliquerai ensuite pourquoi).
Résultat, quand je reçois l'eMail, j'ai "Téléphone" d'écrit correctement (avec les accents), mais en revanche, ça ne fonctionne pas avec le corps du message ({question}) ; avec le corps du message, j'ai toujours des caractères à é â à la place des accents. Smiley fache
Je me suis alors dit que ça venait du fait que j'enregistrais le fichier avec l'encodage ANSI. J'ai donc changé en UTF8, mais c'est pire : "Téléphone" apparait maintenant comme ça "Téléphone".

Est-ce que vous sauriez pourquoi ça ne fonctionne pas ?

Je pense que ça vient de l'encodage des variables, mais je ne sais pas quel(s) fichier(s) modifier pour que ça fonctionne.

D'avance merci pour vos réponses.
Bonne journée Smiley cligne
Je viens d'aller voir dans la BDD, la table des messages hors-ligne et même le champ Question dans cette table ont l'interclassement utf8_general_ci.
Donc je ne sais pas d'où ça vient. Smiley decu
Bonjour
spip93 a écrit :

Je me suis alors dit que ça venait du fait que j'enregistrais le fichier avec l'encodage ANSI. J'ai donc changé en UTF8, mais c'est pire : "Téléphone" apparait maintenant comme ça "Téléphone".

Vous avez enregistré en UTF8 sans BOM ?
Je ne sais pas grand chose sur l'encodage… désolée.

Smiley smile
J'utilise phpDesigner 8 comme éditeur de texte et dans le menu d'encodage (du fichier HTML), j'ai le choix entre :
- ANSI
- UTF-8
- UTF-16 LE
- UTF-16 BE
C'est bon, j'ai contacté le développeur du module. Il a modifié un fichier et c'était résolu.
Merci quand même pour votre aide.
Bonne journée Smiley cligne