- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- Charset windows-1252 ma W3C vorrebbe che usassi UTF-8
-
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?
-
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.
-
Quindi per utilizzare il charste UTF-8 dovrei modificare i caratteri non riconosciuti? Tipo quelli accentati ecc.
-
Up!
-
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...
-
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>
-
Non capisco come elimnare quei 2 warning, qualcuno mi aiuta? Grazie.
-
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().