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.