У меня проблема с этой страницей, изначально закодированной в ISO-8859-1, которая не будет правильно отображаться после кодирования в UTF-8:
Оригинальная страница ISO-8859-1: http://www.maxballet.it/sito/orari.php
UTF-8 страница: http://www.maxballet.it/sito/orari2.php
Код:
<?PHP
switch($orientamento) {
case -1:
echo '<option value="adulti">Adulti</option>';
echo '<option value="bambini_ragazzi">Bambini e ragazzi</option>';
echo '<option value="master_formazione">Master e formazione</option>';
break;
case 'adulti':
echo '<option selected value="adulti">Adulti</option>';
echo '<option value="bambini_ragazzi">Bambini e ragazzi</option>';
echo '<option value="master_formazione">Master e formazione</option>';
break;
case 'bambini_ragazzi':
echo '<option value="adulti">Adulti</option>';
echo '<option selected value="bambini_ragazzi">Bambini e ragazzi</option>';
echo '<option value="master_formazione">Master e formazione</option>';
break;
case 'master_formazione':
echo '<option value="adulti">Adulti</option>';
echo '<option value="bambini_ragazzi">Bambini e ragazzi</option>';
echo '<option selected value="master_formazione">Master e formazione</option>';
break;
default:
break;
}
?>
</select>
<a href="stampa_orari.php?id_disciplina=<?PHP echo $id_disciplina; ?>&orientamento=<?PHP echo $orientamento; ?>" target="_new">Versione stampabile</a>
</p>
<?PHP
switch($orientamento) {
case -1:
break;
case 'adulti':
$nome_orientamento='Adulti';
break;
case 'bambini_ragazzi':
$nome_orientamento='Bambini e ragazzi';
break;
case 'master_formazione':
$nome_orientamento='Master e formazione';
break;
default:
break;
}
if($id_disciplina!=-1) {
if($orientamento!=-1) {
$accesso_mysql=mysql_connect($ip_server_mysql, $username_server_mysql, $password_server_mysql);
if (!$accesso_mysql) {
die('Impossibile accedere a MySQL: ' . mysql_error());
}
else {
$accesso_database=mysql_select_db($nome_database_server_mysql, $accesso_mysql);
if (!$accesso_database) {
die ('Impossibile accedere al database: ' . mysql_error());
}
else {
$query='SELECT corsi.id AS "corsi.id", corsi.nome AS "corsi.nome", livelli_corsi.id_livello_corso AS "livelli_corsi.id_livello_corso", livelli.nome AS "livelli.nome", lezioni.id AS "lezioni.id", lezioni.giorno AS "lezioni.giorno", lezioni.orario_inizio AS "lezioni.orario_inizio", lezioni.orario_fine AS "lezioni.orario_fine", lezioni.descrizione AS "lezioni.descrizione" FROM (discipline, corsi, livelli_corsi, livelli) LEFT JOIN lezioni ON (livelli_corsi.id_livello_corso=lezioni.id_livello_corso) WHERE discipline.id=corsi.id_disciplina AND corsi.id=livelli_corsi.id_corso AND livelli_corsi.id_livello=livelli.id AND discipline.id=' . $id_disciplina . ' AND corsi.orientamento="' . $nome_orientamento . '" AND livelli_corsi.visualizza_orario=1 ORDER BY FIELD(corsi.orientamento, "Adulti", "Bambini e ragazzi", "Master e formazione"), discipline.nome, corsi.ordine, livelli.ordine, FIELD(lezioni.giorno, "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì"), lezioni.orario_inizio, lezioni.orario_fine, lezioni.descrizione;';
$risultato_query=mysql_query($query);
if(!$risultato_query) {
die (mysql_error());
}
else {
$riga=mysql_fetch_array($risultato_query);
while($riga!=FALSE) {
$corsi_id_corso=$riga['corsi.id'];
echo '<div class="contenitore_titolo_linea_orario"><div class="contenitore_titolo_orario"><h4 class="titolo_orario">● ' . $riga['corsi.nome'] . '</h4></div><div class="contenitore_linea_orario"><hr class="linea_orario" /></div></div><div class="orario">';
echo '<table><tr><td class="no_bordo"></td><td class="testo_centrato"><h4>Lunedì</h4></td><td class="testo_centrato"><h4>Martedì</h4></td><td class="testo_centrato"><h4>Mercoledì</h4></td><td class="testo_centrato"><h4>Giovedì</h4></td><td class="testo_centrato"><h4>Venerdì</h4></td></tr>';
while($riga['corsi.id']==$corsi_id_corso) {
$livelli_corsi_id_livello_corso=$riga['livelli_corsi.id_livello_corso'];
echo '<tr><td class="testo_corsivo">' . $riga['livelli.nome'] . '</td>';
while($riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
$incremento=1;
echo '<td class="testo_centrato">';
while($riga['lezioni.giorno']=='Lunedì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
$orario_inizio_lezione=$riga['lezioni.orario_inizio'];
$valore_orario_inizio_lezione=date('H:i', strtotime($orario_inizio_lezione));
$orario_fine_lezione=$riga['lezioni.orario_fine'];
$valore_orario_fine_lezione=date('H:i', strtotime($orario_fine_lezione));
echo $valore_orario_inizio_lezione . '-' . $valore_orario_fine_lezione;
if($riga['lezioni.descrizione']!=NULL) {
echo '<br />' . $riga['lezioni.descrizione'];
}
echo '<br />';
$incremento=0;
$riga=mysql_fetch_array($risultato_query);
if($riga['lezioni.giorno']=='Lunedì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
echo '-<br />';
}
}
echo '</td><td class="testo_centrato">';
while($riga['lezioni.giorno']=='Martedì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
$orario_inizio_lezione=$riga['lezioni.orario_inizio'];
$valore_orario_inizio_lezione=date('H:i', strtotime($orario_inizio_lezione));
$orario_fine_lezione=$riga['lezioni.orario_fine'];
$valore_orario_fine_lezione=date('H:i', strtotime($orario_fine_lezione));
echo $valore_orario_inizio_lezione . '-' . $valore_orario_fine_lezione;
if($riga['lezioni.descrizione']!=NULL) {
echo '<br />' . $riga['lezioni.descrizione'];
}
echo '<br />';
$incremento=0;
$riga=mysql_fetch_array($risultato_query);
if($riga['lezioni.giorno']=='Martedì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
echo '-<br />';
}
}
echo '</td><td class="testo_centrato">';
while($riga['lezioni.giorno']=='Mercoledì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
$orario_inizio_lezione=$riga['lezioni.orario_inizio'];
$valore_orario_inizio_lezione=date('H:i', strtotime($orario_inizio_lezione));
$orario_fine_lezione=$riga['lezioni.orario_fine'];
$valore_orario_fine_lezione=date('H:i', strtotime($orario_fine_lezione));
echo $valore_orario_inizio_lezione . '-' . $valore_orario_fine_lezione;
if($riga['lezioni.descrizione']!=NULL) {
echo '<br />' . $riga['lezioni.descrizione'];
}
echo '<br />';
$incremento=0;
$riga=mysql_fetch_array($risultato_query);
if($riga['lezioni.giorno']=='Mercoledì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
echo '-<br />';
}
}
echo '</td><td class="testo_centrato">';
while($riga['lezioni.giorno']=='Giovedì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
$orario_inizio_lezione=$riga['lezioni.orario_inizio'];
$valore_orario_inizio_lezione=date('H:i', strtotime($orario_inizio_lezione));
$orario_fine_lezione=$riga['lezioni.orario_fine'];
$valore_orario_fine_lezione=date('H:i', strtotime($orario_fine_lezione));
echo $valore_orario_inizio_lezione . '-' . $valore_orario_fine_lezione;
if($riga['lezioni.descrizione']!=NULL) {
echo '<br />' . $riga['lezioni.descrizione'];
}
echo '<br />';
$incremento=0;
$riga=mysql_fetch_array($risultato_query);
if($riga['lezioni.giorno']=='Giovedì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
echo '-<br />';
}
}
echo '</td><td class="testo_centrato">';
while($riga['lezioni.giorno']=='Venerdì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
$orario_inizio_lezione=$riga['lezioni.orario_inizio'];
$valore_orario_inizio_lezione=date('H:i', strtotime($orario_inizio_lezione));
$orario_fine_lezione=$riga['lezioni.orario_fine'];
$valore_orario_fine_lezione=date('H:i', strtotime($orario_fine_lezione));
echo $valore_orario_inizio_lezione . '-' . $valore_orario_fine_lezione;
if($riga['lezioni.descrizione']!=NULL) {
echo '<br />' . $riga['lezioni.descrizione'];
}
echo '<br />';
$incremento=0;
$riga=mysql_fetch_array($risultato_query);
if($riga['lezioni.giorno']=='Venerdì' && $riga['livelli_corsi.id_livello_corso']==$livelli_corsi_id_livello_corso && $riga['corsi.id']==$corsi_id_corso) {
echo '-<br />';
}
}
echo '</td>';
if($incremento==1) {
$riga=mysql_fetch_array($risultato_query);
}
}
echo '</tr>';
}
echo '</table></div>';
}
}
}
mysql_close($accesso_mysql);
}
}
}
?>
Это просто соответствующий фрагмент, потому что другие части кода либо совместно используются с другими страницами в кодировке UTF-8, которые работают нормально, либо обрабатывают различные комбинации значений в флажках.
Я даже попытался разобрать файл впоследствии для символов BOM и UTF-8, но безуспешно.
Любая помощь в этом была бы очень признательна, спасибо всем заранее.
ОБНОВЛЕНИЕ 1: Исправление мета-тегов на странице и преобразование всей базы данных из латиницы 1 в utf-8 не решило проблему.
Ваша «страница UTF-8» говорит, что кодировка содержимого соответствует ISO-8859-1:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Измените это на:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Других решений пока нет …