Soucis de caractères français sur le site

Ici c'est moi qui vous informe de la vie du site et du forum.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
fneck
Site Admin
Messages : 17424
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Soucis de caractères français sur le site

Message par fneck »

Hello, j'ai besoin de l'aide de spécialistes PHP MySQL pour le site. Je viens de constater que les accents de mon site web, et d'une manière générale tous les caractères spéciaux français, sont altérés et remplacés par des losanges avec des points d'interrogation. J'ai bien compris qu'il s'agissait d'un soucis d'encodage de caractères mais je n'arrive pas à le résoudre. Je ne sais pas si c'est ainsi depuis le changement d'hébergeur ?

Ci-dessous une copie d'écran pour bien visualiser le problème :
Image
issue de cette page https://www.system-cfg.com/detailcollec ... ?ident=223

En regardant de plus près, on constate que les accents issus du code html ou php sont corrects (Accès forum, Accès base de données, etc...).
Ce qui pose problème c'est le contenu qui est issu de la base de donnée MySQL.

Dans la partie "head" de mon code on retrouve systématiquement :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Dans la structure de la base de données on voit un "interclassement" en "utf8_bin".
Initialement ce dernier était en "latin1_swedish_ci", je l'ai changé hier pour être comme sur le forum où il n'y a pas le problème mais ça n'a rien résolu.

Je sèche, des idées ?

Merci.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Soucis de caractères français sur le site

Message par Papy.G »

J'y connais rien en dev web, mais l'inspecteur de Mozilla me met en évidence un problème de guillemets insuffisants, dans le head, troisième ligne:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Manque le guillement après HTML, et celui avant utf-8.

Encore un problème de ponctuation… :mrgreen:

Edit: Ligne suivante, même problème. :roll:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17424
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: Soucis de caractères français sur le site

Message par fneck »

Je regarderai ce soir...
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Soucis de caractères français sur le site

Message par __sam__ »

Papy.G a écrit : 26 nov. 2018 22:28 J'y connais rien en dev web, mais l'inspecteur de Mozilla me met en évidence un problème de guillemets insuffisants, dans le head, troisième ligne:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Manque le guillement après HTML, et celui avant utf-8.
Non je pense que la syntaxe est correcte, cf: https://www.w3.org/International/questi ... clarations qui présente la même chose.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Soucis de caractères français sur le site

Message par hlide »

Si les caractères losange-question ne sont pas à la base du UTF-8, ça ne fonctionnera pas non plus.

Si tu utilises notepad++ par exemple, tu peux visualiser en changeant l'encoding et vérifier lequel te permet de voir les accents correctement. Un fois fait ça, tu peux ensuite demander à convertir en UTF-8 pour que ces accents soient en UTF-8.
Dernière modification par hlide le 27 nov. 2018 15:43, modifié 1 fois.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Soucis de caractères français sur le site

Message par hlide »

Je viens de tester sur Notepad++ :

Code : Tout sélectionner

<td class="tab_right">RAM 256 Ko <br>extensible � 512 Ko sur carte m�re<br>ROM ??? Ko </td>
Il me confirme que ce n'est pas de l'UTF-8. Il y a un mélange entre ceux en UTF-8 et non UTF-8. Ça ne va pas être simple à convertir du coup.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: Soucis de caractères français sur le site

Message par hlide »

C'est une page "auto-générée" (auto-construite pour les puristes de la langue) ? comme tu l'as dit, ce problème ne vient qu'avec l'extraction de ta base de données. J'ai peur que l'extraction fasse la conversion et génère un mauvais code UTF-8 parce que le caractère à la source n'est pas lu avec le bon codec d'origine. J'ai essayé avec l'encoding de NotePad pour trouver ce que c'est mais sans résultat.
Vous devez utiliser le bon code caractère « é » ou « e accent aigu » sinon, vous risquez d'avoir des caractères mal affichés en Css, Html ou Javascript comme peut le monter le caractère encodé en ISO-8859-1.
En ISO-8859-1, ça donne précisément ce symbole. J'ai l'impression qu'il y a eu conversion du ISO-8859-1 vers UTF-8 lors de l'extraction alors que ce n'était pas du ISO-8858-1 (code \uE9 transformé en \uFFFD).
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17424
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: Soucis de caractères français sur le site

Message par fneck »

Merci pour vos différentes réponses 8)

Le problème était dans la requête php vers la base de données. A partir de je ne sais plus quelle version de php, la fonction "mysql" qui permet de passer les commandes à la base de données a été remplacé par "mysqli". Or celle-ci nécessite maintenant de préciser l'encodage lors de la connexion à la base par l'ajout d'une commande : mysqli_set_charset( $nom_de_la_connection, "UTF8" );

Information trouvée ici : https://openclassrooms.com/forum/sujet/ ... yadmin-php

Maintenant c'est bon, mais je ne comprends pas comment je n'ai pas vu cela plus tôt, puisque l'introduction dans mon code de "mysqli" date effectivement de la migration du site vers le nouvel hébergeur... :cry: :cry: :cry:

[edit] j'ai encore trouvé d'autres trucs qui ne fonctionnent pas bien sur la requête de recherche dans la base mais c'est purement du mauvais code php qu'il va falloir débugger !
Je suis absolument certain d'avoir testé ces fonctions après le transfert du site, puisque j'ai dû les reprogrammer en partie. Là je pense de plus en plus que c'est l'hébergeur qui vient de modifier quelque chose dans le support de php.

[edit 20/12/2018] La recherche dans la base de données fonctionne à nouveau. Une histoire de minuscules et majuscules qui ne posait pas de problèmes avant et qui aujourd'hui ne passait plus...
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Répondre