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

    Problema codifica caratteri

    Ho creato una funzione per creare un file di testo e farlo scaricare dal browser.

    function crea_txt($nome, $testo) {
    header("Content-Type:text/plain; Charset=ISO-8859-1");
    header("Content-Disposition: attachment; filename=".$nome.".txt");
    print($testo);
    }

    Il problema è che quando vado ad aprirlo con un visualizzatore, la codifica non viene riconosciuta e quindi i caratteri accentati non vengono visualizzati correttamente. Se per esempio importo lo stesso file con OpenOffice con la codifica ISO-8859-1 tutto avviene correttamente. Come posso fare a far si che la codifica venga settata automaticamente anche con notepad?
    Grazie in anticipo.
    Alberto
    Barnacle

  2. #2
    devi agire su php.ini

    prova a fare un phpinfo() e controlla gli Header HTTP
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  3. #3
    Ho guardato e l'unica cosa "strana" è che default_charset è impostato su no value. Però anche quello dell'hoster (si dice così?) dove dovrei caricare il sito ha lo stesso valore. Non vorrei, se fosse quello, di trovarmi con lo script che funziona in locale e non online.
    Mmm...
    Io però prima non ho detto che il file di testo viene creato dinamicamente con dei dati provenienti da un db. Forse questo influisce...
    Grazie comunque.
    Barnacle

  4. #4
    Fatto così funziona sia in locale che su internet:

    <?php
    $nome="prova";
    $testo="è+][é*§°çòàù@";
    function crea_txt($nome, $testo) {
    header("Content-Type:text/plain");
    header("Content-Disposition: attachment; filename=".$nome.".txt");
    print($testo);
    }
    crea_txt$nome, $testo);
    ?>

    La parte Charset=ISO-8859-1 va tolta perchè altrimenti online va in errore il server. Se però faccio caricare i dati da mysql, sul mio computer non funziona, mentre online non posso provare (per ora). A questo punto mi sorge il dubbio che ho sbagliato il set di caratteri per il db. Qualcuno mi può dire con certezza quale devo usare? Io attualmente ho utilizzato latin1_general_ci (nel campo Collation).
    Grazie
    Barnacle

  5. #5
    Passando il testo con la funzione utf8_encode() funziona (offline). Resta da capire perchè su tutti i computer che ho provato (linux e win) hanno impostato 8859-1 o simile, ma per visualizzare questo txt, devo codificarlo così. Bo?
    Qualche suggerimento?
    Barnacle

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.