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

    Php e CSV: Lettere accentate

    Ciao a tutti,
    sono nuovo del forum e in parte anche del php, quindi spero di non aggiungere un post troppo banale, ma ho guardato in giro e non ho trovato nulla al caso mio.
    Ho un codice php che mi pesca dei dati da un file csv (senza passare da mysql, anche perchè mio malgrado non sono su server linux). Il problema è che le lettere accentate non vengono correttamente lette (e quindi sostituite da punti interrogativi).
    Premetto che il meta è già impostato su utf-8 e il file csv è salvato con la stessa codifica.
    C'è una riga nel codice php che posso aggiungere per far trasformare le lettere accentate in html?

    Grazie,

    Stefano

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    prova
    @header("Content-type: text/html; charset=utf8");
    in cima al file php

  3. #3
    Ciao,
    intendi dopo <?php ?
    se sì, purtroppo non succede nulla..

  4. #4
    Nessuno mi può aiutare?

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ma i dati che prendi dal csv poi li mostri a schermo su un browser?

  6. #6
    Sì. Se è possibile farlo, posso incollarti il codice php

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    se vuoi postalo pure
    ma penso che puoi risolvere usando la funzione htmlentities() quando fai l'output a schermo

  8. #8
    Quote Originariamente inviata da blackmiles Visualizza il messaggio
    Ciao a tutti,
    (senza passare da mysql, anche perchè mio malgrado non sono su server linux).
    Sono pignolo.. lo so.. ma.. mysql non è una prerogativa di server linux. E' possibile averlo anche su windows.

    al''inizio della pagina html hai messo
    codice:
    <head> <meta charset="UTF-8"> </head>
    ??
    Sicuro che il file csv sia in utf-8 ? Io non ne sarei così sicuro.. excel, per esempio, fornisce csv in formato ANSI e non basta SALVARLO in utf-8.. bisogna CONVERTIRLO.

  9. #9
    @W Thunderbird
    Sì, hai ragione riguardo MySQL. Sorry. Ma ho ereditato una parte già fatta, e penso ormai di tenerla fuori dal db.
    Però riguardo alla conversione, ho visto che con excel bisogna per forza (mi pare) passare da un salvataggio in .txt. A quel punto mi sembra troppo complesso per la persona che dovrà poi gestirlo.

    @clasku
    la funzione htmlentities() sarebbe proprio quello che cerco, ma non trovo un tutorial che spieghi bene cosa devo fare (considerando che sono un principiante su php).
    Devo mettere da qualche parte
    $converti = htmlentities($stringadaconvertire);

    questo è il codice che ho:

    <?php
    $fd= fopen ("dati.csv", "r");
    $x=0;
    while (!feof ($fd))
    {
    $riga=fgets($fd, 4096);
    if($riga!="")
    {
    $arr=split(';', $riga);
    print"<h1>".$arr[0]."</h1>";
    print"<a href= '".$arr[4]."' target='_blank'><img src='".$arr[1]."' border='0' width='".$arr[2]."' alt='news sul verde verticale' /></a>";
    print"<p>".$arr[3]."</p>";
    print"<a href= '".$arr[4]."' target='_blank'>".$arr[5]."</a>";
    print"<br /><br /><div class = 'linea'></div>";
    print"\n\n";
    $x++;
    }
    }
    print "";
    fclose($fd);
    ?>

    thanks!!

  10. #10
    Quote Originariamente inviata da blackmiles Visualizza il messaggio
    @W Thunderbird
    Però riguardo alla conversione, ho visto che con excel bisogna per forza (mi pare) passare da un salvataggio in .txt. A quel punto mi sembra troppo complesso per la persona che dovrà poi gestirlo.
    Nemmeno, credo, con excel 1 bisognava salvare in txt e poi rinominare. Si salva direttamente in .csv .
    Scegli Salva con nome, alla voce Salva come (sotto alla barra dove si digita il nome) clicchi e cerchi la voce CSV (delimitato dal separatore di elenco) (*.csv)
    Il file prodotto sarà un csv con delimitatore il punto e virgola ; in codifica ANSI.

    Se invece hai un excel in versione più evoluta puoi salvare nel formato chiamato: CSV (Macintosh) (*.csv).
    In questo modo viene prodotto un file csv con delimitatore il punto e virgola ; in codifica UTF8 senza BOM (che a te non interessa).
    Ultima modifica di W Thunderbird; 20-05-2014 a 17:47

Tag per questa discussione

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.