Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    140

    errore parola accentata nella query al db

    ciao, dovrei fare una ricerca all'interno del database della parola inserita da un utente,
    ma se l'utente inserisce una parola accentata non mi viene restituito alcun risultato.
    Il character set del database è utf8, ma provando a usare utf8_encode(parola_utente) non mi viene comunque inserito alcun risultato.

    Per esempio in un altro caso dovevo leggere delle parole inserite in un file txt, in quel caso per ogni parola facevo utf8_encode(parola) e riuscivo a memorizzare anche le parole accentate..

    sapete come si fa?

  2. #2
    Negli utlimi giorni ho scritto il codice seguente almeno 50 volte per rispondere ad altri post più o meno simili al tuo.
    Codice PHP:
    $chiave trim($_POST['chiave_di_ricerca']);

    $chiave str_replace("à""à"$chiave);
    $chiave str_replace("è""è"$chiave);
    $chiave str_replace("ù""ù"$chiave);
    $chiave str_replace("ì""ì"$chiave);
    $chiave str_replace("ò""ò"$chiave);
    $chiave str_replace("é""é"$chiave);

    $sql "SELECT * FROM tabella WHERE colonna LIKE %'$chiave'% "
    Indubbiamente, ma questo anche per non avere problemi con l'inserimento di caratteri "particolari" nel DB, devi fare lo stesso string_replace anche con le stringhe che vai a salvare nel DB.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Citi un file di testo, ma un file di testo non specifica l'encoding con cui è stato creato, solo il formato del file. Da come hai descritto, il file di testo era Latin1 e tu convertivi con utf8_encode(): così va bene.

    Adesso l'input viene da un form: anche qui non è specificato l'encoding. Se la pagina è già utf8, non devi usare utf8_encode(), altrimenti avrai una nuova stringa per ogni carattere non ASCII puro. Ciò ha gli stessi effetti collaterali di quanto hai descritto.

    Concludendo, prova a togliere utf8_encode().

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    140
    Grandi!!!
    anche a Natale mi rispondete..
    Auguri di buon Natale!

    ringrazio entrambi per la risposta..
    anche se alla fine mi è stata piu utile la risposta di Nicola..
    Anche io non capivo che senso potesse avere mettere uf8_encode..dato che la pagina ha gia utf_8 come charset..almeno cosi pero non venivano fuori una sfilza di errori..
    ora comunque è tutto ok!!!
    Grazie ancora, ad entrambi!

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    140
    Mi capita lo stesso problema per l'upload di un file che ha titolo con accento..
    quando vado a vedere il file caricato nella cartella degli upload, il titolo presenta caratteri strani invece che accento..
    tipo questo carattere à invece che à..

    In questo caso sia upload.html che upload.php sono entrambi utf-8..
    come posso risolvere??

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    140
    Scusate, ma rileggendo mi sn accorto che mi sn spiegato abbast male..
    dunque..
    devo caricare un file nominato città.doc nel database(che ha charset utf-8), quando faccio l'upload pero nel database va a finirmi un il nome del file scritto cosi:
    cittÃ.doc..

    come posso risolvere??

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.