OVH Community, votre nouvel espace communautaire.

les caracthres accentuis ne sont plus l' .


fritz2cat
11/07/2016, 22h25
Il y a 15 ans, les serveurs SMTP n'étaient pas 8-bit clean, par exemple sur SunOS.
Aujourd'hui si tu ne déclares pas un charset, ça peut être interprété comme du text/ascii.

P.S. Joli l'exemple de rachid.wilda ... c'est un peu gras comme humour

vsb
11/07/2016, 21h53
Citation Envoyé par fritz2cat
...
è -> h
é -> i
c'est quand on travaille dans un jeu de caractère de type iso-8859-1 (qui se souvient de DEC multinational ici ?) et que le bit de poids fort est tronqué.
Quand on convertit un caractère 8-bit en ascii 7-bit.
Voilà une explication bien facile à comprendre et mais qu'est-ce qui pourrait bien provoquer cette disparition du msb ? Peut-être du côté du logiciel de réception du courrier (Outlook en l'occurrence) ?

Pour info, j'ai sur mon site d'autres procédures d'envoi de courrier, toujours via mail(), qui envoient du courrier en format htm , avec image insérée et/ou pièce jointe et qui fonctionnent toujours sans problème ...

Encore merci pour votre attention et toutes vos suggestions
Jean

fritz2cat
11/07/2016, 21h14
Quand je vois le sujet de ce mail ça me paraît évident qu'il ne s'agit pas d'une incompatibilité entre jeux de caractères
"les caracthres accentuis "
è -> h
é -> i
c'est quand on travaille dans un jeu de caractère de type iso-8859-1 (qui se souvient de DEC multinational ici ?) et que le bit de poids fort est tronqué.
Quand on convertit un caractère 8-bit en ascii 7-bit.
https://fr.wikipedia.org/wiki/Multin..._Character_Set

vsb
11/07/2016, 13h31
Citation Envoyé par Gaston_Phone
C'est simple :
  • Quelle version de PHP avant ?
  • Quelle version de PHP maintenant ?


- - - Mise à jour - - -
Peut-être pas si simple: mon .ovhconfig actuellement en service date du 30/03/2015 et contient la déclaration du php 5.5

L'anomalie s'est déclarée en début juillet 2016

buddy
11/07/2016, 13h29
Ca peut aussi venir du serveur mail /webmail qui gère différemment les encodages non spécifiés...
Même si toi tu ne mets rien à jour, ovh tiens à jour ses serveurs. On est pas à l'abri d'une légère modification lors d'un upgrade ou d'une correction de config côté OVH. Surtout lorsque c'est un comportement par défaut..

Gaston_Phone
11/07/2016, 13h12
Citation Envoyé par vsb
.... pourquoi, alors que mon site date d'une dizaine d'années, le problème ne s'est il manifesté soudainement en début de ce mois sans qu'aucune intervention n'ait été effectuée ???
C'est simple :
  • Quelle version de PHP avant ?
  • Quelle version de PHP maintenant ?


- - - Mise à jour - - -

Citation Envoyé par vsb
L'informatique n'est décidément pas une science exacte
Tout à fait. Tout comme la médecine.

vsb
11/07/2016, 12h56
Bonjour Gaston, bonjour Buddy,

Merci pour vos réponses qui m'ont permis de résoudre le problème, .. même s'il me reste un étonnement

J'ai tout d'abord inséré la ligne supplémentaire dans le $headers, comme suggéré:

Avec $headers.= "Content-type: text/html; charset= utf8\n"; et un $message adapté, j'ai envoyé et bien reçu le mail
"Envoi le 11/07/2016 à 11:51:46 pour vérifier si, avec utf8, les caractères accentués sont bien là où il faut"

M'étonnant de ne pas voir le trait d'union habituel du utf-8, j'ai refait le test en modifiant le $headers en conséquence, avec le résultat:
"Envoi le 11/07/2016 ࠱1:52:50 pour v鲩fier si, avec utf-8, les caract貥s accentu鳠sont bien l࠯ il faut"

Enfin, tant qu'à faire et par curiosité, j'ai déclaré le charset iso-8859-1 et, oh surprise, tout s'est encore très bien passé:
"Envoi le 11/07/2016 à 11:55:09 pour vérifier si, avec iso-8859-1, les caractères accentués sont bien là où il faut"

Me voilà donc avec 2 solutions et un questionnement (pas fondamental d'un point de vue pragmatique): pourquoi, alors que mon site date d'une dizaine d'années, le problème ne s'est il manifesté soudainement en début de ce mois sans qu'aucune intervention n'ait été effectuée ???

L'informatique n'est décidément pas une science exacte

A bientôt,
Jean

buddy
10/07/2016, 12h38
Ton mail est envoyé avec quel encodage ?

si tu ajoutes
$headers.= "Content-type: text/html; charset= utf8\n";

si tu fais $message=utf8_decode($message) çà passe mieux?

ou utf8_encode ..

Gaston_Phone
10/07/2016, 12h18
Une piste --> OVH - Tester l'envoi de mail avec un petit script PHP.

vsb
10/07/2016, 11h17
Bonjour à toutes et tous,

Depuis début juillet, l'envoi de messages via la fonction mail() me transforme systématiquement les accents (voir le titre ci-dessus comme exemple) ...

Rien n'a été modifié à mon site depuis plusieurs mois --> le donne ma langue au shah

Le code:
Code:
';
	}
	else
	{
		echo 'ECHEC du script le '.Date("d/m/Y à H:i:s");
	}
?>
Déjà merci pour vos suggestions,
Jean