Страница PHP не отображается должным образом после преобразования в UTF-8

У меня есть проблема с этой страницей, изначально закодированной в 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">&#9679; ' . $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&igrave;</h4></td><td class="testo_centrato"><h4>Marted&igrave;</h4></td><td class="testo_centrato"><h4>Mercoled&igrave;</h4></td><td class="testo_centrato"><h4>Gioved&igrave;</h4></td><td class="testo_centrato"><h4>Venerd&igrave;</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 не решило проблему.

1 ответ

Ваша "страница 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" />
Другие вопросы по тегам