Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417

    problema lettere accentaate

    Ho un db mysql con iseriti i comuni tutti con le lettere accentare normalmente cioè Agliè è scritto normalmente e leggibile

    Se faccio una query di ricerca
    $id = Agliè
    SELECT * FROM comuni WHERE comune = '$id'
    le codifiche sono tutte utf-8
    non mi trova nulla anche se nel db è scritto esattamente Agliè

    qualcuno saprebbe aiutarmi?
    grazie

  2. #2
    Molto probabilmente la tua intuizione è giusta:è un problema di codifica.

    Il problema è che visivamente vedi la stessa cosa: agliè, ma l'agliè che cerchi è in una codifica differente dell'agliè memorizzato nel db.

    un modo veloce per rendersene conto e debuggare è la funzione bin2hex, se tu fai bin2hex($stringaDaRicercare)

    poi con un altra query prendi il record di agliè(magari guarda che id ha e prendilo attraverso l'id), estrai il campo "comune" e ficcalo dentro bin2hex()

    se bin2hex ti dà 2 stringhe diverse HAI un problema di codifica, che generalmente è che un dato è in utf8 e l'altro no, e lì ci vuol poco a capire se il problema è nel db o nel dato che mandi in post, altrimenti il problema è altrove

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    si mi da due stringhe diversa:
    41676c69c3a8
    41676c69e8
    ma dove trovo il problema di codifica?

    nel db la codifica del campo comune è utf8_general_ci
    nella pagina che passa la stringa è utf-8

    mi sai spegare?
    grazie

  4. #4
    il primo è in utf8, il secondo è in ascii, se il secondo è quello che trovi nel db,il problema potrebbe essere che la pagina che invia i dati DA INSERIRE nel db, non ha il charset impostato a utf8

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    si il primo è quello della pagina che fa la ricerca il secondo del DB

    $id = "Agliè";
    echo "
    " . bin2hex($id);
    echo "
    " . bin2hex($row1[3]);

    ma ho controllato e tutto è utf8.

    inserito con utf8
    la pagina che fa la query è in utf8
    la codifica db è utf8

  6. #6
    Deve essere utf8 anche l'encoding della connessione al database: http://php.net/manual/en/function.mysql-set-charset.php

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.