Как решить проблему с 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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽