Problème de Charset ...

Problème de Charset ... - Divers - Linux et OS Alternatifs

Marsh Posté le 28-04-2006 à 10:32:51    

J'ai installé roundcube et mp3act sur une debian (apache2, mysql, php 4.0).
 
Je rencontre des problèmes avec l'affichage des caractères accentués.
Je n'ai pas trouvé la solution depuis hier. Les quelques solutions rapportés sur les forums des deux applications ne m'ont pas aidé.
 
Prenons l'exemple de roundcube :
 
Lorsque je paramètre apache2 avec le charset ISO-8859-1 (AddDefautCharset ISO-8859-1), l'affichage des lettres accentuées de l'interface est correct.
Par contre, le contenu des mails ne s'affichent pas correctement.
Lorsque je force mon navigateur firefox à encoder les caractères en UTF-8, c'est l'inverse qui se produit. Les mails s'affiche correctement mais l'interface fait apparaître des losanges noir avec un point d'interrogation.
 
Prenons l'exemple de mp3act :
 
Lorsque je paramètre apache2 avec le charset ISO-8859-1 (AddDefautCharset ISO-8859-1), l'affichage des lettres accentuées de l'interface est correct.
Par contre, le contenu des variables Mysql ne s'affichent pas correctement.
Lorsque je force mon navigateur firefox à encoder les caractères en UTF-8, c'est l'inverse qui se produit. Les valeurs contenus dans la base de données Mysql  s'affichent correctement mais l'interface fait apparaître des losanges noir avec un point d'interrogation.
 
Je suis bloqué.
 
Toute contribution me sera utile.
 
Merci


Message édité par sneakz le 28-04-2006 à 10:33:44
Reply

Marsh Posté le 28-04-2006 à 10:32:51   

Reply

Marsh Posté le 28-04-2006 à 11:21:24    

moi j'ai tout passé en utf8 (les locales) et pour les requetes mysql j'ai rajouté    mysql_query("SET NAMES 'UTF8'" );
 
par exemple j'ai ceci comme foncion  
function send_sql($db, $sql)  
{mysql_query("SET NAMES 'UTF8'" );
 if (! $res=mysql_db_query($db, $sql)){
  echo mysql_error();
  exit;
 }
 return $res;
}


Message édité par limax le 28-04-2006 à 11:23:44
Reply

Marsh Posté le 28-04-2006 à 11:35:06    

Merci pour cette contribution.
C'est certainement la solution mais je n'ai pas le courage et la compétence pour rentrer dans le code source des deux applications.

Reply

Marsh Posté le 28-04-2006 à 22:21:23    

J'ai essayé ceci dans le fichier mp3act_functions.php
 

Code :
  1. function genreform(){
  2.   mp3act_connect();
  3.   mysql_query("SET NAMES 'UTF_8'" );
  4.   $query = "SELECT * FROM mp3act_genres ORDER BY genre";
  5.   $result = mysql_query($query);
  6.  
  7.   $output = "<select id=\"genre\" name=\"genre\" onchange=\"updateBox('genre',this.options[selectedIndex].value); return false;\">
  8.     <option value=\"\" selected>Choisir le genre..";
  9.  
  10.   while($genre = mysql_fetch_array($result)){
  11.     $output .= "  <option value=\"$genre[genre]\">$genre[genre]\n";
  12.   }
  13.   $output .= "</select>";
  14.   return $output;
  15. }


 
mais le résultat n'est pas là ...
 
http://cjoint.com/data/eCwwTAtVEk_capture.jpg
 
mysql> status;
...
Connection:             Localhost via UNIX socket
Client characterset:    latin1
Server characterset:    latin1
...


Message édité par sneakz le 28-04-2006 à 22:24:39
Reply

Marsh Posté le 30-04-2006 à 20:02:19    

J'ai trouvé une solution qui n'est pas très propre mais qui a le mérite de fonctionner.
La traduction française de l'interface se situe dans un fichier intitulé labels.inc
 

Code :
  1. <?php
  2. /*
  3. $Id: labels.inc,v 1.2 2005/11/08 20:18:55 roundcube Exp $
  4. */
  5. $labels = array();
  6. $labels['settings'] = 'Préférences';


 
J'ai inséré pour chaque label la fonction utf8_encode
 
$labels['settings'] = utf8_encode('Préférences');
 
Si vous connaissez une meilleure solution, je suis preneur.


Message édité par sneakz le 30-04-2006 à 20:04:32
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed