Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: mysql php & russo

  1. #1

    mysql php & russo

    ho un problema...
    ho letto tantissimi post e le ho veramente provate tutte e non sono riuscito a saltarci ancora fuori dopo 2 giorni di test...

    situazione:

    tabella mysql creata con collation utf8_unicode_ci
    campi della tabella settati su utf8_unicode_ci
    se faccio una query vedo correttamente i caratteri del russo


    da sito
    charset utf-8:
    lancio la stessa query.... stampo a video e vedo dei caratteri ??????????????????
    quando stampo a video uso anche la funzione di php utf8_encode($myResults['Sigla']) ma nulla da fare....

    ho impostato i charset da tutte le parti e non riesco veramente a capire dove sia il problema... qualche idea?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    succedeva anche a me e ho aggiunto nel file di configurazione che contiene i parametri di connessione al DB questa riga
    mysql_query("SET NAMES 'utf8'");

    vedi anche
    http://forum.html.it/forum/showthrea...readid=1336078
    e anche
    http://forum.html.it/forum/showthrea...readid=1335143

  3. #3
    ciao telegio avevo già fatto....
    Codice PHP:
            global $dbhost,$dbuser,$dbpass,$dbname;
            
    $Database = new DBManager();
            
    $Database->Setup($dbhost,$dbuser,$dbpass);
            
    $Database->Connect();
            
    $Database->Open($dbname);
            
    $Database->Select($sql);
            
            
    $Database->Select("SET CHARACTER SET utf8");
            
    $Database->Select("SET NAMES utf8");        
            
    $sql="SELECT *, $vID AS ID, UCASE(Sigla_".$_SESSION['SESSION_L'].") AS Sigla FROM $vTabella $vWH ORDER BY Sigla ASC";
            
    //echo($sql);
        
            
    $Database->Select($sql); 
    ma nulla....

  4. #4

    Re: mysql php & russo

    'nica cosa che campia è che i ?????????? si trasformano in ГЕРМÐÐИÐ


    Originariamente inviato da scmatteo
    ho un problema...
    ho letto tantissimi post e le ho veramente provate tutte e non sono riuscito a saltarci ancora fuori dopo 2 giorni di test...

    situazione:

    tabella mysql creata con collation utf8_unicode_ci
    campi della tabella settati su utf8_unicode_ci
    se faccio una query vedo correttamente i caratteri del russo


    da sito
    charset utf-8:
    lancio la stessa query.... stampo a video e vedo dei caratteri ??????????????????
    quando stampo a video uso anche la funzione di php utf8_encode($myResults['Sigla']) ma nulla da fare....

    ho impostato i charset da tutte le parti e non riesco veramente a capire dove sia il problema... qualche idea?
    Grazie

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

    mi spiace.. davvero non so come aiutarti..

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    global $dbhost,$dbuser,$dbpass,$dbname;

    $Database = new DBManager();
    $Database->Setup($dbhost,$dbuser,$dbpass);
    $Database->Connect();
    $Database->Open($dbname);
    $Database->Select($sql);

    $sql="SELECT *, $vID AS ID, UCASE(Sigla_".$_SESSION['SESSION_L'].") AS Sigla FROM $vTabella $vWH ORDER BY Sigla ASC";



    $Database->Select($sql);

    $recordset=$Database->Results;

    $Database->clearResults();

    foreach(
    $recordset as $r_key=>$record)
      {
      
    //supponiamo che tu abbia il campo nome
      
    $record['nome']=(mb_detect_encoding($record['nome']) !='UTF-8')?
          
    iconv(mb_detect_encoding($record['nome']),'UTF-8',$record['nome']):
          
    $record['nome'];
      
      
    $recordset[$r_key]['nome']=htmlentities($record['nome'],ENT_NOQUOTES);
      } 
    prova così



    p.s.: conosco la classe mysql che usi
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Originariamente inviato da telegio

    mi spiace.. davvero non so come aiutarti..

    nulla da fare.... ecco come ho personalizzato il codice
    Codice PHP:
            global $dbhost,$dbuser,$dbpass,$dbname;
            
    $Database = new DBManager();
            
    $Database->Setup($dbhost,$dbuser,$dbpass);
            
    $Database->Connect();
            
    $Database->Open($dbname);
            
    $Database->Select($sql);
            
            
    //$Database->Select("SET CHARACTER SET utf8");
            //$Database->Select("SET NAMES utf8");        
            
    $sql="SELECT *, $vID AS ID, UCASE(Sigla_".$_SESSION['SESSION_L'].") AS Sigla FROM $vTabella $vWH ORDER BY Sigla ASC";
            
    //echo($sql);
        
            
    $Database->Select($sql);
            
    $recordset=$Database->Results;
            
    $Database->clearResults(); 
              
                foreach(
    $recordset as $r_key=>$record){
                  
    //supponiamo che tu abbia il campo nome
                      
    $record['Sigla']=(mb_detect_encoding($record['Sigla']) !='UTF-8')?
                      
    iconv(mb_detect_encoding($record['Sigla']),'UTF-8',$record['Sigla']):
                      
    $record['Sigla'];
                  
                      
    $recordset[$r_key]['Sigla']=htmlentities($record['Sigla'],ENT_NOQUOTES);
                      
                        if(
    $vIDValue==$recordset[$r_key]){
                            echo(
    "<option value='".$recordset[$r_key]['ID']."' selected='selected'>".$recordset[$r_key]['Sigla']."</option>\n");
                        }else{
                            echo(
    "<option value='".$recordset[$r_key]['ID']."'>".$recordset[$r_key]['Sigla']."</option>\n");
                        }
                } 

    P.S: se conosci questa classe molto probabilmente ci siamo conosciuti allora

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ti ho mandato pvt

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    questa è una funzione che mi sono fatto io per la conversione dei testi in entità HTML.

    Codice PHP:
    function HTMLconvert($text)
      {
      
    $finded   =array();
      
    $filtered =array();
      
    $pattern="/(<\/?\w+\s*[^>]*\/?> )?([^<>]*)/mis";
      
    preg_match_all($pattern$text$stringsPREG_SET_ORDER);

      foreach(
    $strings as $arr)
        {
        if( !empty(
    $arr[2]) ) $finded[]=$arr[2];
        }
      
      
    $elements=array_unique($finded);

      foreach(
    $elements as $el)
        {
        if (
    substr($el,0,1) !='/' && !in_array("/$el",$elements)) 
          {
          
    $filtered[]=$el;
          }
        }
      
      foreach(
    $filtered as $s_key=>$s_val)
        {
        if(
    mb_detect_encoding($s_val)=='UTF-8')
          {
    $s_val=iconv('UTF-8'"ISO-8859-1//TRANSLIT",$s_val);}
        else       
          {
    $s_val=iconv('ISO-8859-1'mb_detect_encoding($s_val)."//TRANSLIT",$s_val);}

        
    $entities[$s_key]=htmlentities($s_val,ENT_QUOTES);
        }
      
      
    $text=str_replace($filtered,$entities,$text);
      return (
    $text);
      } 
    per il momento ha sempre funzionato bene e l auso per gestire testi provenienti da un editor fck

    vedi se ti può essere di aiuto...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    Originariamente inviato da dottwatson
    ti ho mandato pvt

    ok anche io...
    altre soluzioni? cosa può dipendere il fatto che non riesco a vedere questi santi caratteri nonostante abbiamo specificato il charset da tutte le parti... potrebbe essere un'impostazione del php.ini sul server?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.