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

    caratteri speciali e smarty

    Salve a tutti!
    Se visualizzo il file PROVA.HTML così fatto:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it" dir="ltr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>

    Questa è una prova</p></body>
    </html>

    ...ottendo la visualizzazione della "è" corretta.

    Se invece utilizzo smarty e quindi utilizzo un file php così fatto:
    <?php
    // caricamento delle librerie di Smarty
    require('./smarty/Smarty.class.php');
    $smarty = new Smarty;
    $smarty->template_dir = './smarty/site/templates';
    $smarty->compile_dir = './smarty/site/templates_c';
    $smarty->config_dir = './smarty/site/configs';
    $smarty->cache_dir = './smarty/site/cache';
    $smarty->display('prova.tpl');
    ?>

    ...che richiama un file prova.tpl così fatto:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it" dir="ltr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>

    Questa è una prova</p></body>
    </html>

    ...ottendo la visualizzazione della "è" NON corretta. Al suo posto ho un "?"

    Che senso ha? Sapete suggerirmi il possibile problema?
    Grazie a chi mi vorrà aiutare!

  2. #2
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    E' un problema di codifica dei caratteri accentati. In effetti al posto di questi caratteri è sempre bene usare i caratteri speciali HTML...nel tuo caso la "è" dovresti scriverla

    Codice PHP:
    &egrave

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    oppure visto che specifichi come tipo di charset UTF8

    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    è bene che scrivi con un editor che ti salvi in utf8.

    ciao

  4. #4
    Il problema era proprio quello che diceva gianiaz. Adesso questa parte è risolta!

    Adesso, però, ho un altro problemino..
    Se voglio recuperare il contenuto della mia pagina da db mysql e poi passarlo a smarty, ho lo stesso problema sui caratteri accentati.

    LA MIA SITUAZIONE E':
    db mysql con collation "utf8-general_ci"
    tabella che contiene il testo da estrarre con collation "utf8-general_ci"
    la stessa codifica "utf8-general_ci" è impostata su tutti i campi testo della mia tabella

    ESEMPIO:
    la TABELLA contiene: "Questo è il testo da estrarre"
    Il risualtato che otttengo è: "Questo ? il testo da estrarre"

    Non capisco il problema! Pensavo che impostando la codifica come ho fatto da phpmyadmin sul db non ci sarebbero stati problemi..

    Come potrei risolvere?

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da ciri
    Il problema era proprio quello che diceva gianiaz. Adesso questa parte è risolta!

    Adesso, però, ho un altro problemino..
    Se voglio recuperare il contenuto della mia pagina da db mysql e poi passarlo a smarty, ho lo stesso problema sui caratteri accentati.

    LA MIA SITUAZIONE E':
    db mysql con collation "utf8-general_ci"
    tabella che contiene il testo da estrarre con collation "utf8-general_ci"
    la stessa codifica "utf8-general_ci" è impostata su tutti i campi testo della mia tabella

    ESEMPIO:
    la TABELLA contiene: "Questo è il testo da estrarre"
    Il risualtato che otttengo è: "Questo ? il testo da estrarre"

    Non capisco il problema! Pensavo che impostando la codifica come ho fatto da phpmyadmin sul db non ci sarebbero stati problemi..

    Come potrei risolvere?
    ma la pagina in che codifica la stai vedendo?

    Controlla dal menu visualizza del browser.

    Se la stai vedendo in utf8, vuol dire che fai qualcosa alle stringhe prima di mostrarle, se invece la vedi con iso vuol dire che per qualche motivo non accetta il tag meta che gli passi.

    In genere io preferisco dare la codifica con php, usando la funzione header:

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

  6. #6
    Sto visualizzando la pagina in UTF-8. L'unica cosa che faccio alla stringa è prelevarla dal db.
    Mentre nel db ho impostato le codifiche come detto in precedenza.

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da ciri
    Sto visualizzando la pagina in UTF-8. L'unica cosa che faccio alla stringa è prelevarla dal db.
    Mentre nel db ho impostato le codifiche come detto in precedenza.
    L'inserimento come è avvenuto?

    Se hai fatto l'inserimento in un form che come codifica aveva iso forse ha registrato male il dato, in tal caso dovresti mostrare il campo con uft8encode() (tanto per fare una prova, ma ti consiglio se possibile di reinserire il dato in modo corretto).

    La questione dei caratteri se non affrontata bene dall'inizio è frutto di grossi grattacapi.

  8. #8
    A sto punto mi viene da pensare che abbia sbagliato a effettuare queste codifiche:

    LA MIA SITUAZIONE E':
    db mysql con collation "utf8-general_ci"
    tabella che contiene il testo da estrarre con collation "utf8-general_ci"
    la stessa codifica "utf8-general_ci" è impostata su tutti i campi testo della mia tabella

    Ma non capisco il perchè! Idee?

  9. #9
    L'inserimento l'ho fatto a mano sul db per provare. Ho utilizzato phpmyadmin

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da ciri
    A sto punto mi viene da pensare che abbia sbagliato a effettuare queste codifiche:

    LA MIA SITUAZIONE E':
    db mysql con collation "utf8-general_ci"
    tabella che contiene il testo da estrarre con collation "utf8-general_ci"
    la stessa codifica "utf8-general_ci" è impostata su tutti i campi testo della mia tabella

    Ma non capisco il perchè! Idee?
    E quando guardi la pagina di phpmyadmin, che codifica stai utilizzando?

    Comunque ho imparato a mie spese a non fidarmi troppo di phpmyadmin, prova a fare un form tu, in cui hai la codifica in utf8 e fai l'inserimento, vedi se il dato cosi inserito viene visualizzato correttamente.

    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 © 2024 vBulletin Solutions, Inc. All rights reserved.