Как решить проблему с UTF8 With BOM и header()?

Здравствуйте уважаемые тостерчане . На днях столкнулся с такой проблемой .

Для упрощения написал вот такой код

<?PHP  
session_start();
if (isset($_SESSION["login"]))
echo "Добро пожаловать .$_SESSION["login"];
else {
    header("location: panel.html");
    
}


?>


Делал в редакторе Visual Studio Code , при сохранении в UTF 8 выходят

Добро пожаловать уважаемый


Если сохранить в UTF8 With BOM текст будет нормальный но session дает ошибку

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at O:\home\test1.ru\www\admin.php:1) in O:\home\test1.ru\www\admin.php on line 2


Пробовал менять кодировку в двух редакторах Visual Studio Code , Notepad++ ничего не помогает . Делал похожий код но с Header() и ситуация та же . При UTF8 header работает нормально но текст
Добро пожаловать уважаемый

При смены на UTF 8 With BOM не работает header выдает ошибку
Warning: Cannot modify header information - headers already sent by (output started at O:\home\test1.ru\www\panel.php:1) in O:\home\test1.ru\www\panel.php on line 21


Причем жалуется на строку <?PHP

Есть идеи в чем может быть проблема? Заранее спасибо
  • Вопрос задан
  • 766 просмотров
Решения вопроса 1
nazarpc
@nazarpc
Open Source enthusiast
1) Всё и всегда храните/выводите исключительно в UTF-8 (это включает файлы с кодом, записи в БД и прочее)
2) Никогда и нигде не используйте BOM - это кривая штука, которая БУДЕТ создавать вам много неприятностей
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы