Caractères spéciaux

Invité
Invité n'ayant pas de compte PHPfrance

12 juil. 2005, 17:51

Bonjour,

je suis débutant en php/MySQL, je travaille actuellement sur un site en Flash dans lequel j'importe des variables reprises de ma base de données via un script php.

Mon problème est que les caractères spéciaux comme les é è ne s'affichent pas correctement, à la place j'ai un carré blanc en Flash et lorsque je vérifie uniquement le script php à part (hors Flash) il remplace les caractères spéciaux par des signes chinois.

Voilà ce que j'obtiens : Petit r鳵m鮦
au lieu de: Petit résumé.

Je suis un peu perdu, je ne sais pas si le problème vient de mon script php ou de ma bas MySQL mal configurée.

Voici la partie du code concernée:

...
$query="SELECT Titre,Resume FROM Prepresse";
$result = mysql_query($query) or die('Query failed : ' . msql_error($db));
$i = mysql_num_rows($result)-1;
   mysql_data_seek($result, $i);

   if (!($row = mysql_fetch_assoc($result))) {
      
       continue;
   }
   $Tit1=$row['Titre'];
   echo "&tr01=$Tit1&";
   $Res1=$row['Resume'];
   [b]echo "&Resume01=$Res1&";[/b]
...

J'ai essyé de remplacer la partie en gras par ceci:
echo "<font size=\"2\" face=\"Arial\">.&Resume01=$Res1&.</font>";
Mais sans résultat.

Si vous pouviez m'aider je vous en serais reconnaissant.

shi
Invité n'ayant pas de compte PHPfrance

12 juil. 2005, 18:52

essaie de mettre ça en haut de ton code PHP :

<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>

Je suis pas sûr du tout... En tout cas, cela ressemble à un problème de charset...

Petit nouveau ! | 1 Messages

12 juil. 2005, 20:44

J'ai essayé mais cela me renvoit à une page d'erreur:
La page XML ne peut pas être affichée
Impossible d'afficher l'entrée XML en utilisant la feuille de style . Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.


--------------------------------------------------------------------------------

Le symbole point-virgule était attendu. Erreur de traitement de la ressource

shi
Invité n'ayant pas de compte PHPfrance

12 juil. 2005, 20:47

Il faut mettre ça dans ta pape PHP tout en haut.

Si tu as du html, met UTF-8 là où il y a écrit charset, tout en haut...

Si il y a erreur aussi, faudra attendre quelqu'un de compétent lol

Invité
Invité n'ayant pas de compte PHPfrance

12 juil. 2005, 22:32

J'apprécie ton aide, j'ai au moins l'impression de partager un peu mon fardeau :) Je n'ai pas testé l'UTF-8, cela aurait peut-être fonctionné je pense puisque les fichiers txt que j'importe dans les script php pour être redirigés vers Flash sont en UTF-8 et ne me posent aucun soucis, mais entre temps j'ai changé la base de donnée MySQL pour contourner le problème.

J'ai viré le texte de la base de donnée, j'ai inscrit celui-ci dans un fichier texte, et dans la base de donnée j'ai juste indiqué le nom du fichier texte à aller chercher (sans caractères spéciaux cette fois).

Le script php va donc rechercher le contenu du fichier texte dont le nom est donné par la BD MySQL, et j'évite ainsi les problèmes que j'ai rencontré.

Par contre je garde ton système dans un petit coin pour le ressortir et réessayer en cas de besoin :wink:

Merci bien

shi
Invité n'ayant pas de compte PHPfrance

12 juil. 2005, 23:28

OK !

Je prends note de ton idée aussi en cas où !

Bonne continuation !

ViPHP
pjl
ViPHP | 2119 Messages

13 juil. 2005, 08:06

essaie de mettre ça en haut de ton code PHP :
<?php
  echo "<?xml version="1.0" encoding="UTF-8"?>\n";
?>
Je suis pas sûr du tout... En tout cas, cela ressemble à un problème de charset...
Ca sert à quoi de passer cette ligne via un echo ?
Il n'y a aucune variable dedans.
C'est du texte pur et dur et le PHP n'a rien à voir là dedans.

Invité
Invité n'ayant pas de compte PHPfrance

09 août 2005, 14:52

il existe un fonction utf8_encode()... utilise la sur les valeurs que tu transmets au flash....

Mammouth du PHP | 19672 Messages

09 août 2005, 14:53

essaie de mettre ça en haut de ton code PHP :
<?php
  echo "<?xml version="1.0" encoding="UTF-8"?>\n";
?>
Je suis pas sûr du tout... En tout cas, cela ressemble à un problème de charset...
Ca sert à quoi de passer cette ligne via un echo ?
Il n'y a aucune variable dedans.
C'est du texte pur et dur et le PHP n'a rien à voir là dedans.
Sauf que les balises XML commencent par "<?" et finissent par "?>" comme en PHP, ce qui implique que si on le passe direct, tu auras une erreur.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: