Задать вопрос

Почему выводит кракозябры?

Использую в PHP из под Windows 10 код
<?php
$data = 'help';
exec(escapeshellcmd($data), $output, $return);
echo implode("\n", $output)."\nReturn Code: $return";
?>
а он в браузер выводит:
5adc98b51852f885742916.png
Почему так происходит??
  • Вопрос задан
  • 1660 просмотров
Подписаться Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@alexalexes
Если у вас используется сервер PHP 5.6 и выше, то нужно отправлять браузеру http-заголовок, в какой кодировке скрипт будет отдавать данные, в независимости в какой кодировке сам файл скрипта, и даже в том случае, если вы нормально отдаете HTML-структуру документа.
//установка кодировки вывода
  header('Content-Type: text/html; charset=utf-8');

Если не знаете, в какой кодировке будут данные, то нужно идентифицировать кодировку, и вписать ее в header():
echo mb_detect_encoding(implode("\n", $output));
----------------------------
Кодировку подобрал для заголовка методом тыка, так как mb_detect_encoding() не вывел явного ответа.
У меня оказалась CP866:
header('Content-Type: text/html; charset=CP866');
$data = 'help';
exec(escapeshellcmd($data), $output, $return);
echo implode("<br>", $output)."<br>Return Code: ".$return;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@sidni
Php Developer
а если так...
echo  iconv('UTF-8', 'windows-1251//TRANSLIT', implode("\n", $output))."\nReturn Code: $return";
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽