Bonjour,
Je dois faire passer mon site en UTF-8 puisque, à court terme, celui-ci devrait-être traduit en plusieurs langues, j'ai correctement fait passer mon éditeur "Notepad++" en format UTF-8 et depuis, de nombreux caractères ont été effacés, c'est le cas des "é" ; "è", "à" ; ...
Pire, plusieurs fonctions PHP ne fonctionnent plus, c'est le cas de session_start() par exemple.

Savez-vous comment régler ce problème ? Repasser ISO-8859-1 est impossible puisque de nombreuses langues seraient alors inaccessibles (le russe par exemple).


Merci d'avance,
Gaylord.P
Modifié par Gaylord.P (30 Jun 2005 - 12:52)
Salut !
J'ai moi-même passé il y a peu un site en UTF-8.
Pour ce qui est des é, è... dans on éditeur de texte, j'ai peur que tu n'aies plus qu'à les changer manuellement (cherche-remplace). M'enfin, peut-être quelqu'un connaît une solution...
En revanche, moi, je n'ai eu aucun problème avec mes sessions.
Pour info, j'ai inséré cette ligne
header("Content-Type: text/html; charset=utf-8");

avant tout code HTML (mais après le session_start() ). Cette petite ligne m'a épargné bien des soucis d'affichage. Je te la conseille Smiley cligne
Les fonctions qui m'ont posé problème, moi, sont les fonctions liées aux chaînes de caractère. Disons que les fonctions texte qui marchaient en ISO ne marchent plus dès qu'on a des caractères exotiques. Par exemple strlen().
Si tu veux détailler ton problème de session_start(), je peux essayer de comparer avec mon site, si ça peut t'aider...
++
Kantega,,,,
Modifié par Kantega (30 Jun 2005 - 09:28)
Même avec la fonction header(), les sessions ne fonctionnent pas, voici les erreurs renvoyées :
a écrit :


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\Serveur\www\Badjoo\ru\index.php:1) in c:\Serveur\www\Badjoo\ru\index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\Serveur\www\Badjoo\ru\index.php:1) in c:\Serveur\www\Badjoo\ru\index.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at c:\Serveur\www\Badjoo\ru\index.php:1) in c:\Serveur\www\Badjoo\ru\index.php on line 3


Le code présent dans la page est celui-ci :


<?php
  session_start();
  header("Content-Type: text/html; charset=utf-8");
  require("../configurations/mysql.php");
[b][......][/b]


Merci d'avance Smiley smile
C'est quand même bizare que le seul fait de passer en UTF-8 perturbe la fonction session_start()... surtout que chez moi ça a marché. Ce doit être autre chose...
As-tu essayé de faire une page avec juste session_start() ?
Quand j'ai problème que je ne comprends pas, je fais ça, moi : je repars de la base.
Tu te fais une page qui ne contient que
<?php
session_start();
?>

Tu l'appelles "index.php" et tu l'ouvres, non ?
Et dis voir ce que ça te fait...
Modifié par Kantega (30 Jun 2005 - 12:02)
Théoriquement non... pas vraiment.

Etrange, je viens de voir ceci (en admettant que l'encodage de ma page est bien en UTF-8) :
- Lorsque je met mon éditeur (Notepad++) sur format UTF-8, mon site affiche les caractères spéciaux ("é" ; "è" ; "à" ; ...) mais indique les erreurs cités ci-dessous.
- Lorsque je met mon éditeur sur format ANSI, mon site n'affiche pas d'erreurs, mais les caractères spéciaux sont remplacés par des points d'intérrogations.

Les remarques sont identiques pour un autre éditeur tel que WebExpert 6.



Très étrange tout ce bazard pour un simple changement d'encodage, je cherche depuis ce matin, mais toujours pas se solution trouvée Smiley ohwell
En réponse à kandega :

Lorsque je fais une simple page avec

<?php
  session_start();
?>

... enregistré en UTF-8, il y a bien des erreurs, quel éditeur utilises-tu ?
Je ne pense pas que ce soit lié à l'éditeur de texte...
Je suis sur Mac, sinon !
Tu as toujours les mêmes erreurs même avec ce semblant de code ?
J'ai donc changé d'éditeur, les erreurs ne sont plus présentes, en revanche, les caractères spéciaux sont quand même remplacé par des points d'intérrogations lors de la visualisation, il ne faut quand même pas tout remplacé par des &xxxx; (ex: "é" par "é") quand même ? Smiley ohwell
Gaylord.P a écrit :
Même avec la fonction header(), les sessions ne fonctionnent pas, voici les erreurs renvoyées :


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\Serveur\www\Badjoo\ru\index.php:1) in c:\Serveur\www\Badjoo\ru\index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\Serveur\www\Badjoo\ru\index.php:1) in c:\Serveur\www\Badjoo\ru\index.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at c:\Serveur\www\Badjoo\ru\index.php:1) in c:\Serveur\www\Badjoo\ru\index.php on line 3


Ça ressemble grandement à un problème de BOM.