OVH Community, your new community space.

Encodage... l'éternel soucis..;


moresk24
04/06/2015, 13h29
Et oui, Janus, je fais la modif site par site, ça marche ainsi... Je ne vais pas davantage me prendre le choux.

Ma piscine m'attend !!! o)

Bises à tutti

moresk24
04/06/2015, 13h27
Citation Envoyé par BBR
comme je te l'ai déjà dit, tu peux modifier dans ta conf d'apache et/ou celle de php si tous tes sites sont en iso-8859-1, tu peux aussi mettre un .htaccess ( AddDefaultCharset iso-8859-1 ) à la racine de ton site pour forcer l'encodage, tu peux aussi ne modifier que le php.ini de ton domaine ( /home/user/etc/php5/php.ini )
Effectivement, tu m'avais dit cela... je confirme
mais j'avoue que ne comprenais pas ce dont tu parlais
depuis j'ai fait des très petit progrès et je comprends enfin o)
j'ai donc modifié le php.ini de l'utilisateur concerné et miracle.... mes accents sont de retour sans avoir besoin de modifier la balise


Bises 'chaleureuses'

janus57
04/06/2015, 13h11
Bonjour,

bon, si je comprends bien, il faudrait dire à apache de "parler" en " iso-8859-1" , c'est d'ailleurs normalement ça norme ? ou cela a t il évolué ?
non et non, là vu comment il est config il va "parler" la même chose que ce que le site déclare et si il a bien été codé.
Et au passage de nos jour le standard c'est UTF-8.

Y'a t il un soucis à rester en ISO-8859-1 ?
non tu pourra juste pas t’amuser à écrire en russe (les robots de spam non plus d'ailleurs)

tous sont avec default_charset="UTF-8"
si je veux donc rester (ou revenir) à ISO-8859-1, je dois j'imagine faire la modif (default_charset="ISO-8859-1") partout ou cette directive se trouve ?
non sa dépend, PHP utilise l'UTF-8 mais tu peu très bien lui dire le contraire localement avec un ini_set dans un fichier qui est importé partout sur tes sites en iso-8859-1.

Ici je pense que c'est plutôt PHP qui te force l'utf-8 du coup dans les directive du VHost ou dans un .htaccess de mega3d tu peu mettre ceci :
Code:
php_value default_charset "iso-8859-1"
Là tout PHP oui sera le .htaccess passera automatiquement en iso-8859-1.

En tout cas sans PHP (si on copie ton site) cela fonctionne sans problème : http://test.janus57-beta.gq/test.html (je me suis amusé à le rendre compatible HTML5, Cf : https://validator.w3.org/check?uri=h...org%2Fservices).

EDIT :
visiblement tu es sous Debian Jessie maintenant, j'avais dit de bien vérifier que les script PHP avant de passer dessus car PHP5.6 introduit (et cela à commencé avec PHP5.4) introduit le charset UTF-8 comme charset par défaut pour l'ensemble de PHP, donc il faut soit une adaptation du code PHP soit une adaptation de la config apache (note : on évite de modifier la config globale de apache on fait ça site par site).

Cf : http://php.net/manual/fr/migration54.other.php + http://php.net/manual/fr/ini.core.ph...efault-charset

Cordialement, janus57

BBR
04/06/2015, 12h43
comme je te l'ai déjà dit, tu peux modifier dans ta conf d'apache et/ou celle de php si tous tes sites sont en iso-8859-1, tu peux aussi mettre un .htaccess ( AddDefaultCharset iso-8859-1 ) à la racine de ton site pour forcer l'encodage, tu peux aussi ne modifier que le php.ini de ton domaine ( /home/user/etc/php5/php.ini )

moresk24
04/06/2015, 11h59
bon, si je comprends bien, il faudrait dire à apache de "parler" en " iso-8859-1" , c'est d'ailleurs normalement ça norme ? ou cela a t il évolué ?

Ou alors au contraire lui dire de causer UTF-8 (comme là :http://openclassrooms.com/courses/pa...n1-a-l-unicode) et réencoder les fichiers du site, et la BDD associées ?
C'est pas une démarche de fada pour un site avec bcp bcp de pages et une cinquantaine de tables ds la BBD ?


De toute façon j'imagine bien qu'il faut un peu de logique, soit tout (Apache, PHP, Page Web et BDD) dans l'un ou l'autre des format d'encodage.
UTF-8 semble être aujourd'hui la norme
Y'a t il un soucis à rester en ISO-8859-1 ?

Je voius aussi qu'il y'a un fichier /home/'user'/etc/php5/php.ini pour chacun des user.
Cela veut il dire qu'on peut etre un UTF-8 pour un site et en ISO-8859-1 pour un autre ?


Des fichiers php.ini y'a plein o)
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/etc/php5/cgi/php.ini

tous sont avec default_charset="UTF-8"
si je veux donc rester (ou revenir) à ISO-8859-1, je dois j'imagine faire la modif (default_charset="ISO-8859-1") partout ou cette directive se trouve ?

Comment ça je pose trop de question ? o)

moresk24
04/06/2015, 11h50
voici le résultat de l'envoi de cette commande :

/etc/apache2/apache2.conf:225:#AddDefaultCharset UTF-8
/etc/apache2/conf-available/apache2-doc.conf:7: AddDefaultCharset off
/etc/apache2/conf-available/charset.conf:1:# Read the documentation before enabling AddDefaultCharset.
/etc/apache2/conf-available/charset.conf:6:#AddDefaultCharset UTF-8
/etc/apache2/mods-available/proxy.conf:15: # AddDefaultCharset off
/etc/php5/apache2/php.ini:680:default_charset = "UTF-8"
/etc/php5/apache2/php.ini:683:; If empty, default_charset is used.
/etc/php5/apache2/php.ini:688:; If empty, default_charset is used.
/etc/php5/apache2/php.ini:693:; If empty, default_charset is used.
/etc/php5/apache2/php.ini:907:; If empty, default_charset or input_encoding or iconv.input_encoding is used.
/etc/php5/apache2/php.ini:908:; The precedence is: default_charset < intput_encoding < iconv.input_encoding
/etc/php5/apache2/php.ini:912:; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
/etc/php5/apache2/php.ini:913:; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
/etc/php5/apache2/php.ini:917:; If empty, default_charset or output_encoding or iconv.output_encoding is used.
/etc/php5/apache2/php.ini:918:; The precedence is: default_charset < output_encoding < iconv.output_encoding
/etc/php5/apache2/php.ini:1071:;ibase.default_charset =
/etc/php5/apache2/php.ini:1691:; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
/etc/php5/apache2/php.ini:1692:; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
/etc/php5/apache2/php.ini:1698:; If empty, default_charset or input_encoding or mbstring.input is used.
/etc/php5/apache2/php.ini:1699:; The precedence is: default_charset < intput_encoding < mbsting.http_input
/etc/php5/apache2/php.ini:1706:; If empty, default_charset or output_encoding or mbstring.http_output is used.
/etc/php5/apache2/php.ini:1707:; The precedence is: default_charset < output_encoding < mbstring.http_output
/etc/php5/cli/php.ini:680:default_charset = "UTF-8"

Je dois donc changer quelque chose ?

janus57
04/06/2015, 11h22
Bonjour,

Si je mets :

je ne retrouve pas mes accents

si je mets

tout va bien...

Normal ?
normalement ça fonctionne pas comme ça sauf si tu as forcé apache à tout envoyé en UTF-8.

De plus là vu comment tu as mis ton code PHP je pense que cela va générer des erreur dans le sens ou je sais pas si on peu mettre un header(); en plein milieu d'une page comme ça en mode "ça fait rien".

Perso j'ai jamais eu besoin de code PHP de ce genre, que ce soit sur des mutualisé ou des VPS/Dédié, après j'essaye au maximum de travailler en UTF-8 qui est pratiquement devenu la "norme" vu que cela accepte n'importe quel langue.

Commande très simple pour faire une vérification rapide :
Code:
grep -Hnr "DefaultCharset\|default_charset" /etc/
Sur un ISPConfig cela donne :
/etc/apache2/conf.d/apache2-doc:8: AddDefaultCharset off
/etc/apache2/conf.d/charset:1:# Read the documentation before enabling AddDefaultCharset.
/etc/apache2/conf.d/charset:6:#AddDefaultCharset UTF-8
/etc/apache2/mods-available/proxy.conf:15:# AddDefaultCharset off
/etc/php5/apache2/php.ini.ucf-dist:683:;default_charset = "UTF-8"
/etc/php5/apache2/php.ini.ucf-dist:1039:;ibase.default_charset =
/etc/php5/apache2/php.ini:694:;default_charset = "UTF-8"
/etc/php5/apache2/php.ini:1048:;ibase.default_charset =
/etc/php5/fpm/php.ini.ucf-old:694:;default_charset = "UTF-8"
/etc/php5/fpm/php.ini.ucf-old:1048:;ibase.default_charset =
/etc/php5/fpm/php.ini:683:;default_charset = "UTF-8"
/etc/php5/fpm/php.ini:1039:;ibase.default_charset =
/etc/php5/cli/php.ini:683:;default_charset = "UTF-8"
/etc/php5/cli/php.ini:1039:;ibase.default_charset =
/etc/php5/cgi/php.ini:683:;default_charset = "UTF-8"
/etc/php5/cgi/php.ini:1039:;ibase.default_charset =
/etc/squirrelmail/config.php:27:$default_charset = 'iso-8859-1';
/etc/squirrelmail/config_default.php:1087: * @global string $default_charset
/etc/squirrelmail/config_default.php:1089:$default_charset = 'iso-8859-1';
Cordialement, janus57

moresk24
04/06/2015, 09h44
Coucou,

Et bien je n'en suis pas si sûr car :

Si je mets :

je ne retrouve pas mes accents

si je mets

tout va bien...

Normal ?


A noter : l'ensemble des balises













janus57
03/06/2015, 21h46
Bonjour,

pas besoin de faire ça suffit juste de changer la balise charset en iso le navigateur fait le reste du boulot et choisit le bonne encodage.

EDIT :
En XHTML 1.0/1.1 :
Code:
Cordialement, janus57

moresk24
03/06/2015, 21h14
ouf.....
j'ai réussi ;-)))))))))))))))) (grande joie du gars qui à mal à la tête tout de même)

alors :
lecture de :
http://www.pompage.net/traduction/declarations
et donc remplacement de la basise par


et zou

des accents de partout

Merci Janus pour ton aide ;-)

moresk24
03/06/2015, 20h57
sur le serveur où était précédemment hébergé ce site, et où l'encodage ne posait pas de soucis, la commande "locale" donne :
LANG=fr_FR.UTF-8
LANGUAGE=fr_FR:fr
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"

sur le serveur où est maintenant le site, la commande "locale" donne :
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=


je n'ai pas changé le charset=iso-8859-1 dans le fichier gabarit.php qui affiche toute les pages

et ça veut toujours pas faire de beaux accents...

janus57
03/06/2015, 17h45
Citation Envoyé par moresk24
ah cool !
ce janus tout se même.... il assure
et ? que dois je donc faire pour remédier à cela ?
faire simplement des changements ds la balise meta charset= ?
Bonjour,

oui et au passage cette balise n'existe pas en XHTML 1.0 (voir validateur W3C).

Cordialement, janus57

moresk24
03/06/2015, 17h31
ah cool !
ce janus tout se même.... il assure
et ? que dois je donc faire pour remédier à cela ?
faire simplement des changements ds la balise meta charset= ?

janus57
03/06/2015, 16h50
Bonjour,

transféré comment sur le serveur ?
Le site à la base a bien été fait en UTF-8 ? Car là si je force le navigateur en Windows-1250 (iso-8859-1 en fait partie) cela s'affiche parfaitement, donc ça sent le mauvais encodage à plein nez (encodage utf-8 forcé sur un site fait en iso-8859-1).

Cordialement, janus57

moresk24
03/06/2015, 16h19
Bonjour la foule en délire sous le soleil,

Le p'tit soucis du jour :

kimsufi, Jessy fraîchement installé, Virtualmin

(théroquement la belle vie)

root@ks356596:~# locale
LANG=fr_FR
LANGUAGE=fr_FR:fr
LC_CTYPE="fr_FR"
LC_NUMERIC="fr_FR"
LC_TIME="fr_FR"
LC_COLLATE="fr_FR"
LC_MONETARY="fr_FR"
LC_MESSAGES="fr_FR"
LC_PAPER="fr_FR"
LC_NAME="fr_FR"
LC_ADDRESS="fr_FR"
LC_TELEPHONE="fr_FR"
LC_MEASUREMENT="fr_FR"
LC_IDENTIFICATION="fr_FR"
LC_ALL=

et pourtant, jetez un rapide coup d'oeil là :
http://mega3d.fr/?action=spe_tech

Alors ? qu'en pensez vous ?

Pour alimenter votre réflexion :
- le fichier que vous visualisez sur cette page ne sort pas d'une BDD
- dans le head des pages on trouve :
meta http-equiv="Content-Type" content="text/html"
meta charset="utf-8"



La bise débiannesque