• User Attivo

    Charset windows-1252 ma W3C vorrebbe che usassi UTF-8

    W3C sulle pagine di un mio sito mi da il seguente errore:

    Legacy encoding windows-1252 used. Documents should use UTF-8.

    il sito è: locali napoli.net

    Cosa mi consigliate di fare?


  • User Attivo

    Se proprio ti sta a cuore... convertire la codifica e sistemare i caratteri che non lo usano.

    Per me il mondo è in UTF-8, è l'unica codifica che può rappresentare ogni tipo di carattere, a differenza magari di altre codifiche che essendo più datate non hanno questa possibilità. Ma se il sito è amatoriale, non entra in nessun contesto di interoperabilità tra più siti (perché, tra le altre cose, UTF-8 è la codifica di default dell'XML) e non hai bisogno di roba particolare, non è un fattore penalizzante. Non a caso il W3C lo considera un Warning, non un Error.


  • User Attivo

    Quindi per utilizzare il charste UTF-8 dovrei modificare i caratteri non riconosciuti? Tipo quelli accentati ecc.


  • User Attivo

    Up! 🙂


  • User Attivo

    Dimmi cosa non ti è chiaro della mia spiegazione.

    Per utilizzare UTF-8 nelle tue pagine, devi utilizzare caratteri utf8 encoded. O fai riferimento alla tabella UTF-8, o incapsuli le stringhe in una variabile php che poi sottoponi alla funzione utf8_encode(). Sta a te scegliere come fare, non so come sia fatto il tuo sito...


  • User Attivo

    Scrivo uno stralcio di codice di una pagine del sito in questione per farti rendere l'idea, negli include codice html

    <?
    header('Content-type: text/html; charset=windows-1252');
    include('config.php');
    include('functions.php');
    ?>
    <!DOCTYPE HTML>
    <html lang="it">
    <head>

    [...]

    <body>

    <?

    include('/inc/mobile.inc.php');

    ?>

    <div class="main">

    <?

    include('/inc/barra-fb.inc.php');

    ?>

    <div id="header">
    

    <? include('/header.php'); ?>
    </div>

    <div class="content">

    <div class="col1">
    

    <? include('menu.php'); ?>
    </div>

    <div class="col2">
    
        <a href="sms-list.php"><img src="images/banner-sms-list.jpg" width="600" height="150" alt="banner sms list" /></a>
    

    <br /><br />
    <span style="font-size:xx-large;color:navy;"><strong>PROSSIME SERATE</strong></span>
    <br /><br />

    <?php

    $data=DATE('c');

    $data2=explode('T', $data);

    $seleziona=mysql_query("SELECT id,titolo,locale,data_evento FROM eventi WHERE data_evento>='$data2[0]' ORDER BY data_evento ASC");

    while ($row = mysql_fetch_assoc($seleziona))
    {
    $prova=$row[locale];
    $seleziona2=mysql_query("SELECT logo FROM locali WHERE nome='$prova'");
    while ($row2 = mysql_fetch_assoc($seleziona2))
    {

    [...]

    </div>
    

    </div>

    <div id="footer"><? include('home/footer.php'); ?></div>

    </div>

    <?
    include('codice-fb.php');
    include('monitoraggio.php');
    ?>

    </body>
    </html>


  • User Attivo

    Non capisco come elimnare quei 2 warning, qualcuno mi aiuta? Grazie.


  • User Attivo

    Nella prima funzione header, devi modificare il charset da windows-1252 a utf-8. Una serie di caratteri (di solito i simboli e quelli accentanti) ti verranno visualizzati col punto interrogativo, dovrai correggerli sostituendoli con le rispettive entità.

    EDIT: se hai un db che non è stato pre-configurato con utf-8 (db, tabelle, colonne), devi modificare anche la codifica del db e convertire i caratteri non utf-8 all'interno dei record. Se usi PHP, dai anche un'occhiata alla funzione utf8_encode().