Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    PHP lettere accentate e UTF-8

    salve a tutti sto lavorando con php su windows
    popolando una select con dei dati presi dal db se questi ultimi contengono lettere accentate compaiono i soliti caratteri strani (argomento trattato 10000000 di volte in giro per il web)
    speravo di non incorrere nel problema impostando il tutto come spiegato qui sotto ma invece niente !
    ho impostato tutte le pagine con
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    i files sono salvati come UTF-8

    il db dal quale pesco i dati è mySQL 5
    Set di caratteri MySQL: UTF-8 Unicode (utf8)
    collazione della connessione di MySQL: utf8_unicode_ci
    la tabella da dove pesco i dati è utf8_unicode_ci
    cosi come tutti i campi varchar e text della stessa tabella

    a dire il vero se controllo i dati da phpMyAdmin vedo caratteri strani ad esempio cercando di modificare i records
    come ovviare ?

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: PHP lettere accentate e UTF-8

    Originariamente inviato da brutusin
    salve a tutti sto lavorando con php su windows
    popolando una select con dei dati presi dal db se questi ultimi contengono lettere accentate compaiono i soliti caratteri strani (argomento trattato 10000000 di volte in giro per il web)
    speravo di non incorrere nel problema impostando il tutto come spiegato qui sotto ma invece niente !
    ho impostato tutte le pagine con
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    i files sono salvati come UTF-8

    il db dal quale pesco i dati è mySQL 5
    Set di caratteri MySQL: UTF-8 Unicode (utf8)
    collazione della connessione di MySQL: utf8_unicode_ci
    la tabella da dove pesco i dati è utf8_unicode_ci
    cosi come tutti i campi varchar e text della stessa tabella

    a dire il vero se controllo i dati da phpMyAdmin vedo caratteri strani ad esempio cercando di modificare i records
    come ovviare ?
    sei sicuro che i dati siano effettivamente in utf8?

    Se cambi il set di caratteri dal menu visualizza del browser riesci a vederli bene (ad esempio mettendo iso?)

    ciao

  3. #3
    anche modificando il set dal menù di ie non riesco a vederli bene

    ad essere precisi nemmeno su firefox e su opera riesco a vederli bene !

  4. #4
    stavo pensando non è che per caso dipende dal fatto che lavoro con windows ?

    perchè in effetti la cosa strana è che anche controllando i records da phpmyadmin vedo caratteri strani ! mah

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da brutusin
    stavo pensando non è che per caso dipende dal fatto che lavoro con windows ?

    perchè in effetti la cosa strana è che anche controllando i records da phpmyadmin vedo caratteri strani ! mah
    se vuoi fare una prova seria, fai un form semplice con un campo, ti assicuri che la pagina che lo contiene sia in utf8, e ci scrivi dentro una serie di lettere accentate.

    Lato php fai l'inserimento nel db.

    Poi sempre in php ti fai una pagina che legge quel record, e te lo mostra (assicurandoti che anch'essa sia in utf8).

    Il db pur avendo come charset utf8 potrebbe contenere dei caratteri in altri tipi di charset, proprio perchè nei form che li hanno riempiti era settata un altra lingua... a tal proposito, i dati del tuo db da dove arrivano?

    Perchè se ti ha scritto un russo usando il suo charset, non sarà nè l'iso che usiamo noi, nè l'utf8.

    Comunque fidati poco di phpmyadmin, per la visualizzazione dei charset a volte fa dei casini...

  6. #6
    in effetti facendo quanto mi hai suggerito i records vengono stampati con i caratteri corretti ma per quale motivo nella pagina dove ho i tag select invece mi esce di tutto e di più ?

    mi è venuto un dubbio... può essere che siano cosi impostati perchè i file che generano le select sono richiamati con ajax e quindi sono dei file in qualche modo esterni ?
    anche se ho notato che sono tutti salvati con utf-8
    e all'interno contengono solo il codice per recuperare i dati dal db e stampare il solo tag select

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    prova a mettere nella pagina che da i risultati via ajax questa istruzione all'inizio del file:

    codice:
    header('Content-type: text/html;charset=utf-8');
    ciao

  8. #8
    ci avevo già pensato ma mi restituisce un classico
    Cannot modify header information

  9. #9
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da brutusin
    ci avevo già pensato ma mi restituisce un classico
    Cannot modify header information
    perchè stampi qualcosa prima, questo non deve fermarti...

    ciao

  10. #10
    esatto si in effetti è il terzo select quello che mi crea problemi ma ho provato a mettere la riga di codice

    header('Content-type: text/html;charset=utf-8');

    nei files "richiamati" prima ma siamo sempre al solito errore

    addirittura inserendolo nel file index.php che è il primo ad essere lanciato (dopo aver chiuso e riavviato IE) ottengo lo stesso errore
    Cannot modify header information

    ma è cosi complicato lavorare con utf-8 ?

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.