Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    48

    PHP - SQL lettere accentate non funzionano

    Ciao a tutti,
    ho un problema che non riesco a risolvere:
    ho una pagina con una casella di testo, ogni volta che l'utente scrive una lettera dentro la casella, questa richiama una pagina con del codice PHP, controlla nel database e restituisce delle parole che contengono la sequenza di lettere inserite. Come l'auto compilazione/suggerimento di ricerca Google.
    Funziona! Pero' ... le lettere accetate come la ù, ò, à.. non vengono visualizzate. viene mostrato un rombo nero con un ? al centro (�).

    Codice di ricerca:
    Codice PHP:
    <?
    if (isset($_POST['ingrediente'])) {
        
    $squadra $_POST['ingrediente'];
    }
    //else {$squadra="z";}
    $conn mysql_connect("localhost""root""root");
    if (!
    $conn) {
        die(
    'Could not connect: ' mysql_error());
    }

    $link mysql_select_db("cpc"$conn);
    if (!
    $link) {
        die(
    'Canot use link : ' mysql_error());
    }
    $query "select nome from ingredienti where nome like '%$squadra%'";

    $result mysql_query($query);
    if (!
    $result) {
        die(
    'invalid query: ' mysql_error());
    }
    $ArrayRisultati = Array();
    echo 
    "<ul>";
    while (
    $risultati mysql_fetch_array($result)) {
        
    $parametro $risultati["nome"];
        echo 
    "<li onclick=\"add('$parametro')\">" $risultati["nome"] . "";
    }
    echo 
    "[/list]";
    ?>
    Ho provato ad aggiungere a questa pagina le intestazioni al pezzo di codice riportato sopra:
    codice:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">     
    <head> 	
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
    </head>
    </html>
    Ma il codice non veniva piu' eseguito... anche mettendolo come echo "<html> ...." niente!
    La pagina che contiene il div che si "autocompila/suggerisce" contiene le intestazioni con DOCTYPE, ecc.
    Ho provato a scrivere parole con lettere accentate nell' HTML della apgina e funziona, ho provato ad aprire phpmyadmin ed eseguireuna query che mi restituisse parole accentate e funziona...
    il problema si crea solo quando passa per la ricerca (che ho postato sopra).

    La mia tabella ha la collation a: latin1_swedish_ci, ho provato a cambiarla a utf8_general_ci ma mi mostra sempre latin1_swedish_ci il DB invece è a utf8_general_ci

    Potete aiutarmi ?
    BoG

  2. #2
    Perche' i caratteri vengano mostrati correttamente, la codifica deve essere coerente in tutti i posti attraverso cui i dati passano, quindi (supponendo di voler usare utf8):

    - dati in origine devono essere utf8
    - deve essere utf8 i campi del database in cui vengono registrati (sottolineo i campi, non basta cambiare la collation del DB o della tabella DOPO aver creato le colonne).
    - deve essere utf8 il charset della connessione al database al momento dell'inserimento o estrazione
    - deve essere impostata a utf8 la pagina che li visualizza

    se i dati sono stati inseriti come latin1, non basta cambiare le impostazioni DOPO, i dati vanno convertiti (o reimportati).

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.