Bonjour,

Mon titre paraît bien obscur. Je dispose d'une base MySql dont je souhaite lister le contenu ou plus de certaines tables à partir d'une console avec Linux.

J'ai donc créer un simple script en PHP, qui liste par exemple une table choisie. Malheureusement les colonnes de type caractères sont rendues avec Linux, avec des caractères de type Windows.

Je suis vraiment surpris, car après une lecture de phpinfo() tout semble en utf-8 ou utf8.

J'ai donc bricolé une astuce avec iconv. Mais est-elle portable avec Windows ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
function playMysql()
{
 
  $links = mysql_connect("localhost","toto","ptoto") 
  or die( "connection impossible");
  mysql_select_db( "mybase", $links)
  or die( "impossible de selectionner la table");
 
  $res = mysql_query( "select * from table1" ) ;
 
  $rows = mysql_num_rows($res);
  $cols = mysql_num_fields( $res ) ;
 
  for ($y = 0; $y < $rows; $y++)
  { 
    for( $x = 0 ; $x < $cols ; $x++)
    { 
       $data= mysql_result($res, $y, $x );
       $data = iconv( "ISO-8859-15", "UTF-8", $data) ; // peux pas faire autrement ?
       print "$data"." ";
    }
   print "\n" ;
 
  }
 
playMysql()
Je lance le script qui s'appelle s.php avec :

php -f s.php

Le résultat est bon, mais ce iconv rajouté me turlupine car avec une base firebird toujours avec Linux il n'y a pas ce problème.

Il y a peut-être quelque chose à configurer avec MySql ou PHP ? Aucune idée ...

PS: ce n'est pas moi qui ai mis les mots clés en majuscules, mais l'automate.