Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Codifica da MYSQL a PHP (apstrofofi e altro)

    Buongiorno a tutti quanti.
    Spero riuscirete a risolvere il mio problema e spero di spiegarmi nel migliore dei modi..

    Ho una pagina HTML con codifica utf8
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    Ho una tabella mysql di tipo MyISAM con collation utf8_general_ci

    Ho riempito questa tabella facendo da phpmyadmin una IMPORTA
    importando una tabella formato CSV

    Il punto è questo:
    in phpmyadmin io vedo tutti i dati della tabella visualizzati correttamente (apostrofi, lettere accentate ecc.)

    Ma se provo a visualizzarli nella mia pagina HTML gli apostrofi ed alcuni altri caratteri si vedono
    male (con un carattere di punto interrogativo con sfondo nero)

    Ho provato a tirare su i dati con tutti questi comandi (a volta)

    $field = htmlspecialchars_decode(htmlentities($field));
    $field = htmlspecialchars($field, ENT_NOQUOTES, "UTF-8");
    $field = htmlspecialchars($field);
    $field = html_entity_decode($field);
    $field = mysql_escape_string($field);
    $field = addslashes($field);
    $field = stripslashes($field);
    $field = htmlentities($field);

    L'unico comando che funziona è il primo ( htmlspecialchars_decode(htmlentities($field)); )
    Questo comando in effetti mi fa visualizzare correttamente le lettere accentate. ma per alcuni caratteri come il famoso apostrofo non funziona...
    l'apostrofo che intendo dire è questo nell'esempio qui sotto
    365 giorni all’anno

    http://www.farfalla-project.it/demo/img/apostrofo.jpg

    insomma questo ed altri caratteri nella mia pagina non vengono visualizzati

    A questo punto la mia domanda è:

    se in phpmyadmin (che è una pagina generata da php e visualizzata su HTML con codifica utf8) quel benedetto apostrofo si vede come mai io non lo vedo visualizzato correttamente sulla mia pagina ? E' tutta la mattina che ci sbatto la testa...
    Quale è il modo per visualizzare correttamente questi caratteri ?

    Notare che il problema non è di inserimento in MYSQL ma semplicemente di recuperare o visualizzare correttamente un carattere che già sta dentro la tabella...

  2. #2
    Devi molto probabilmente settare il charset della connessione al database a utf-8.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Potresti spiegarti meglio per piacere ?
    devo settare qualche parametro di mysql o c'è qualche comando da php ?
    grazie

  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Prova ad eseguire questa query dopo aver effettuato la connessione al database

    codice:
    SET NAMES utf8

  5. #5
    già provato:
    mysql_set_charset('utf8');
    mysql_query("SET NAMES 'UTF8'");

    continua a non andare...

  6. #6
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Questi sono tutti gli accorgimenti da prendere in considerazione per non avere problemi con l'utf8

    1) COLLATION UTF8 DB

    2) COLLATION UTF8 TABELLA

    3) COLLATION UTF8 CAMPO

    4) CONNESSIONE DB UTF8

    5) QUERY SET NAMES E COLLATION

    Con il punto 5 sei a posto, e col resto?

    Che procedura di importazione hai usato?

    Ciao

  7. #7
    Grazie per l'ultima risposta...
    non avrei mai pensato ci fosseto tutte ste impostazioni
    ho risolto impostando così:

    "SET SESSION character_set_connection = 'utf8' "
    "SET SESSION character_set_client = 'utf8' "
    "SET SESSION character_set_database = 'utf8' "
    "SET SESSION character_set_results = 'utf8' "


    ci ho impiegato 5 ore ma ho risolto

  8. #8
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Di nulla, però ti consiglio di impostare il charset utf8 direttamente nel db/tabella/campo usando ALTER TABLE, o ancora meglio, creare la tabella con le impostazini giuste e quindi rifare l'importazione, in quanto alterando il charset con i dati già presenti potrebbero presentarsi dei problemi.

    Eviteresti inoltre di far girare tutte quelle queries ad ogni richiesta.
    Ciao

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.