Réglage d'encodage du serveur ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Réglage d'encodage du serveur ?

Re: Réglage d'encodage du serveur ?

par Jim125 » 30 déc. 2011, 16:21

Si cela t'amuses quand tu rédiges un grand texte de mettre des entities partout pourquoi pas mais pour ma part je ne trouve pas cela facile.
Et jamais je n'arrive à me souvenir des codes.
C'est très facile au contraire. pas besoin de taper ni de se souvenir des codes... :wink:
En fait, je tape mes textes normalement, comme toi. Mais je n'affiche jamais un texte en faisant : echo $texte
J'utilise toujours la fonction htmlentities :

<?php
$texte="René, pêche, très sûr, très tôt, là-bas, j'ai dù, ça marche, c'est Noël.";
echo htmlentities($texte);
?>

ce qui donne dans le code source html généré par php (côté client donc) :
Ren&eacute;, p&ecirc;che, tr&egrave;s s&ucirc;r, tr&egrave;s t&ocirc;t, l&agrave;-bas, j'ai d&ugrave;, &ccedil;a marche, c'est No&euml;l.

Je laisse PHP faire le boulot pour moi. :)

Re: Réglage d'encodage du serveur ?

par Dino29 » 30 déc. 2011, 14:06

Pour tes scripts malheureusement s'ils ont été pensé pour de l'iso faut tout repasser à la moulinette manuellement. :/
En effet, tout les fichiers sont en iso, seul le lang_fr.php était en utf-8.
Mais je ne comprends pas pourquoi les accents s'affichent sans changement sur un hébergement et qu'il y a besoin de les convertir pour l'autre. >_<

Re: Réglage d'encodage du serveur ?

par xTG » 30 déc. 2011, 09:11

Si cela t'amuses quand tu rédiges un grand texte de mettre des entities partout pourquoi pas mais pour ma part je ne trouve pas cela facile.
Et jamais je n'arrive à me souvenir des codes.
Alors sachant qu'avec un bon réglage de l'encodage on peut rédiger normalement... :|

Re: Réglage d'encodage du serveur ?

par Jim125 » 29 déc. 2011, 23:41

&eacute; est aussi lisible partout non ? ne vaut t-il pas mieux mettre &eacute; que é dans un document utf8 ?

Re: Réglage d'encodage du serveur ?

par xTG » 29 déc. 2011, 21:42

Pourquoi n'écris-tu pas : <?php echo "a&eacute;a"; ?>

sinon ton é risque d'être illisible à l'étranger sur certains navigateurs et tu ne le sauras pas. Même s'il s'affiche chez toi.
C'est pour ça qu'on utilise de l'utf-8, c'est lisible partout...

Pour tes scripts malheureusement s'ils ont été pensé pour de l'iso faut tout repasser à la moulinette manuellement. :/

Re: Réglage d'encodage du serveur ?

par Dino29 » 29 déc. 2011, 18:42

Ca va pour mes pages, mais quand j'installe des scripts, c'est galère.
Par exemple je viens d'installer osTicket en français, et aussi un plugin wordpress, et les accents sont passés à la trappe sur les deux :/.
Pour osTicket par exemple, il utilise un require lang_fr.php avec dedans des chaînes de type Define("WELCOME","blablabla résolution"); et du coup tout les accents deviennent des carrés. J'ai installé la même archive sur mon premier serveur, et là ca passe trés bien.
Si je convertit lang_fr.php en UTF8 sans BOM, ca passe, c'est deja bien pratique vu que là c'est le seul fichier avec des accents, mais si possible j'aimerais bien que ce soit automatique, comme sur le premier serveur. ^^

Re: Réglage d'encodage du serveur ?

par Jim125 » 29 déc. 2011, 18:27

Pourquoi n'écris-tu pas : <?php echo "a&eacute;a"; ?>

sinon ton é risque d'être illisible à l'étranger sur certains navigateurs et tu ne le sauras pas. Même s'il s'affiche chez toi.

Re: Réglage d'encodage du serveur ?

par Dino29 » 29 déc. 2011, 18:12

Je l'enregistre en utf-8, mais avec BOM.
J'ai testé le ini_set, et vérifié avec phpinfo(), le default_charset est "no value" pour les 2 serveurs, et la Local Value passe bien à utf-8 quand j'utilise ini_set, mais le carré blanc s'affiche quand même sur le deuxième serveur.

Edit : En encodant en utf-8 sans BOM, le é s'affiche correctement sur les 2 sites! Par contre, avec BOM, il s'affiche toujours correctement sur le premier site, et passe en carré blanc sur le deuxième ...
Je peux reenregistrer tout mes fichiers sans BOM, mais si il y a une méthode pour que les 2 serveurs se comportent de la même façon, je suis preneur. ^^'

Merci

Re: Réglage d'encodage du serveur ?

par xTG » 29 déc. 2011, 17:11

Ton fichier tu l'enregistres bien en utf-8 (sans BOM) et non en ansi ?
Aussi il y a la valeur dans le php.ini, que tu peux modifier avec la commande suivante si tu ne peux le modifier :
ini_set('default_charset', 'utf-8');

Réglage d'encodage du serveur ?

par Dino29 » 29 déc. 2011, 16:40

Salut,

j'ai 2 serveurs d'hebergements différents, et l'affichage des lettres accentuées (dans les include surtout) est différent sur les 2.

Finalement, j'ai pu réduire le problème à un exemple simple.
Je fais un fichier test.php contenant seulement le code suivant :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
</head>
<?php echo "aéa"; ?>
Sur le premier serveur, la page affiche bien "aéa" (IE8/IE9).
Sur le deuxième, la page affiche "a�a". Dans les 2 cas, l'encodage du navigateur (Affichage : Codage) est bien sur UTF-8. Les deux fichiers sont bien encodé en UTF-8, avec BOM (via notepad ++). Mais l'affichage est différent.

Si j'utilise
header('Content-Type: text/html; charset=utf-8');
les lettres s'affichent correctement sur les deux serveurs. Par contre, dés que j'include un fichier avec des variable string contenant des accents, et que j'affiche ces variables, les "�" reviennent, sur le deuxième serveur.
Comment faire pour le que deuxième serveur se comporte comme le premier ?

Edit : Le "�" est normalement un carré blanc vide, mais ca ne passe pas sur le forum.

Merci

Dino