Php 5.6 et caractères accentués sur mon site

WRInaute impliqué
Bonjour,

depuis 9 ans je suis chez infomaniak et il y a quelques semaines ils m'ont proposé de passer sur la nouvelle console d'administration, ce ne fut pas sans mal mais j'y suis arrivé. Sur celle-ci, il y a du php à la "volée", mon site étant au départ sous php 5.4 j'ai eu un message d'avertissement comme quoi cette version était obsolète, je suis passé à php 5.5 sans problèmes mais maintenant, ils annoncent que cette version ne sera bientôt plus sécurisée et qu'il faut passer en php 5.6 ou 7.0 et là quand je teste tout fonctionne sauf pour les caractères accentués (é, è, à, etc...) qui sont remplacés par des points d'interrogations ce qui rend le site illisible.

Infomaniak, semble avoir compris la cause car ils me parlent d'un problème avec ma balise meta : "<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">" et d'un problème d'encodage :

"Encodage de caractères par défaut ¶

default_charset est maintenant utilisé comme jeu de caractères par défaut pour les fonctions htmlentities(), html_entity_decode() et htmlspecialchars(). Notez que si les configurations d'encodage (maintenant obsolète) d'iconv et mbstring sont définies, elles prendront le dessus par rapport à la configuration de default_charset pour les fonctions iconv et mbstring, respectivement.

La valeur par défaut pour cette configuration est UTF-8."

mais ils ne me donnent pas la solution car ils sont hébergeurs et n'interviennent pas dans la réalisation de sites. Pour information, mon site est en html, je n'utilise pas de php sauf pour un .htaccess pour faire pointer des noms de domaine synonymes.

Quelqu'un a-t-il une solution à me proposer ?

Bonne journée.
 
WRInaute accro
As tu essayé de forcer l'encodage dans le .htaccess :

AddDefaultCharset iso-8859-1

Il faut également enregistrer tes fichiers html en iso-8859-1

Sauf si tu es en utf-8, la tu dois tout mettre en utf-8 :wink:
 
WRInaute impliqué
noren a dit:
As tu essayé de forcer l'encodage dans le .htaccess :

AddDefaultCharset iso-8859-1

Il faut également enregistrer tes fichiers html en iso-8859-1

Sauf si tu es en utf-8, la tu dois tout mettre en utf-8 :wink:

Merci pour ta réponse.

Actuellement j'ai juste : "<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">" sur chacune de mes pages.

Est-ce que je dois changer cette balise et si oui par quoi et que mettre éventuellement dans le .htaccess ? Vu qu'infomaniak parle d'une valeur par défaut en UTF-8 ?

Désolé mais pour moi ces histoires d'encodage c'est du chinois, j'avais justement fait du html pour pas être ennuyé par les mises à jour php et là ça ne marche pas :wink: .
 
WRInaute accro
Tu remplaces sur tes pages :
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
par
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
 
WRInaute impliqué
indigene a dit:
Je ne comprend pas ton problème avec php si ton site est en html

C'est bien là tout le problème, infomaniak me dit que leur hébergement sont d'office en php et qu'à partir de php 5.6, l'encodage est en utf8 alors que j'ai du html, avec du texte écrit en "dur" et apparemment il y a une incompatibilité et je cherche comment la solutionner avant qu'ils n'abandonnent le php 5.5 pour le php 5.6.

En d'autres termes, pourquoi une page écrite en html avec des caractères accentués en "dur" bugge sous php 5.6 ou php 7.0 ?
 
WRInaute accro
Si ton texte est écrit en dur et que t'as des soucis de caractères accentués c’est que ton fichier html a été enregistré dans un format différent de celui attendu par le serveur.

Essaye d'enregistrer test fichiers html au format utf-8 sans bom
Tu peux faire l'essai avec une page html test.
 
WRInaute accro
Pour éviter ce genre de problème il suffit de coder chaque caractère accentué avec son équivalent html ( & e a c u t e ; pour é par exemple)
 
WRInaute impliqué
Bonjour,

j'ai fait quelques tests avec ce que vous m'avez dit et je vais résumer pour voir si tout est correct.

Premièrement, je remplace sur toutes les pages la balise

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

par

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

Question : à quoi sert le "/" ?

Ensuite, j'utilise textwrangler sous mac et je vois UTF8 et UTF8 avec bom au moment de l'enregistrement, je choisis le premier pour l'avoir sans bom si j'ai bien compris ? Apparemment ça fonctionne seul problème j'ai certains pas tous des " ' " qui sont remplacés par des ? inversés dans textwrangler de même pour le "oe" de oeuf et ils n'apparaissent pas sur la page en ligne, par contre, si je corrige dans le document en UTF8 apparemment il le prend en compte mais évidemment c'est long et fastidieux car je dois tout relire ...

Vu qu'il me faudra du temps, je compte corriger et mettre en ligne une page à la fois, je suppose que ce sera compatible avec php 5.5 et qu'il me suffira de basculer en 5.6 ou 7.0 une fois que j'aurai tout changé.

Merci pour votre aide.
 
WRInaute accro
Salut

Il me semble qu'en HTM tu es obligé de fermer tes balises d'ou la nécessité de mettre le /
Tu dois le faire pour les balises img, br etc. celles qui n'ont pas de balises ouvrantes et fermantes tel que <strong>blabla</strong>

maintenant il me semble qu'en html5 les / pour les img, meta, br etc. ne sont plus nécessaires mais il faut que ta page html soit déclarée en html 5. (a confirmer)

Code:
<html lang="fr">
   <head>
	<meta charset="utf-8">
....

As tu essayé d'ajouter également la ligne indiquée plus haut dans ton .htaccess ?

mais bon a priori ton problème venait bien de l'encodage de ton fichier html, vu que tes textes étaient écris en dur.
 
WRInaute impliqué
Bonjour,

je tenais encore à vous remercier, après 4 mois de dur labeur, j'ai réécrit toutes les pages en UTF8 et ça fonctionne même sous php 7 :D . J'en ai aussi profité pour suivre les conseils google et rendre mon site compatible avec toutes les plateformes et tailles d'écran.

Maintenant, mon hébergeur me propose, ce n'est pas une obligation de passer en https, apparemment c'est encore assez complexe, notamment au niveau de l'écriture des liens ? Est-ce vraiment utile pour un site de 50 pages en HTML ?

Bonne journée.
 
Discussions similaires
Haut