Испанские символы не отображаются правильно

Я получаю прекрасный поле, где должны отображаться испанские символы. (т. е.: ñ, á и т. д.). Я уже убедился, что для моего meta http-equiv установлено значение utf-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

Я также убедился, что заголовок страницы также установлен для utf-8:

 header('Content-type: text/html; charset=UTF-8'); 

Вот начальные этапы моего кода:

 <?php setlocale(LC_ALL, 'es_MX'); $datetime = strtotime($event['datetime']); $date = date("M j, Y", $datetime); $day = strftime("%A", $datetime); $time = date("g:i", $datetime); ?> <a href="/<?= $event['request'] ?>.html"><?= $day ?> <?= $time ?></a> 

Вышеприведенный код находится в инструкции where. Я прочитал, что включение сортировки в базу данных также может быть фактором, но я уже установил его в UTF-8 General ci. Кроме того, единственное, что есть в этом столбце, это DateTime в любом случае, которое является числом и не может быть сопоставлено в любом случае.

результат: s bado 8:00

Любая помощь очень ценится, как всегда.

    Что нужно учитывать в PHP / MySQL / UTF-8

    • Таблицы базы данных и текстовые столбцы должны быть установлены в UTF-8
    • HTML-страница Content-Type должна быть установлена ​​в UTF-8

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    • PHP должен отправить заголовок, информирующий браузер, чтобы ожидать UTF-8

      header('Content-Type: text/html; charset=utf-8' );

    • Соединение PHP-MySQL должно быть настроено на UTF-8

      mysqli_query("SET CHARACTER_SET_CLIENT='utf8'",$conn);

      mysqli_query("SET CHARACTER_SET_RESULTS='utf8'",$conn);

      mysqli_query("SET CHARACTER_SET_CONNECTION='utf8'",$conn);

    • PHP ini имеет параметр default_charset, он должен быть utf-8, если у вас нет доступа к нему, используйте ini_set('default_charset', 'utf-8');

    Я много лет страдаю этой проблемой, и я не могу найти никакой логики, и я пробовал все вышеперечисленные решения.

    Одним из решений является создание html-кодов для всего текста. Вот функция, которую я использовал, когда все остальное не удалось.

     function span_accent($wordz) { $wordz = str_replace( "Á","&Aacute;",$wordz); $wordz = str_replace( "É","&Eacute;",$wordz); $wordz = str_replace( "Í","&Iacute;",$wordz); $wordz = str_replace( "Ó","&Oacute;",$wordz); $wordz = str_replace( "Ú","&Uacute;",$wordz); $wordz = str_replace( "Ñ","&Ntilde;",$wordz); $wordz = str_replace( "Ü","&Uuml;",$wordz); $wordz = str_replace( "á","&aacute;",$wordz); $wordz = str_replace( "é","&eacute;",$wordz); $wordz = str_replace( "í","&iacute;",$wordz); $wordz = str_replace( "ó","&oacute;",$wordz); $wordz = str_replace( "ú","&uacute;",$wordz); $wordz = str_replace( "ñ","&ntilde;",$wordz); $wordz = str_replace( "ü","&uuml;",$wordz); $wordz = str_replace( "¿","&iquest;",$wordz); $wordz = str_replace( "¡","&iexcl;",$wordz); $wordz = str_replace( "€","&euro;",$wordz); $wordz = str_replace( "«","&laquo;",$wordz); $wordz = str_replace( "»","&raquo;",$wordz); $wordz = str_replace( "‹","&lsaquo;",$wordz); $wordz = str_replace( "›","&rsaquo;",$wordz); return $wordz; } 

    Просьба проверить ваш файл ENCODING. Он должен быть в UTF-8 или UTF-8 без спецификации.

    Чтобы изменить кодировку файла. Используйте Notepad ++ (вы также можете использовать другой редактор, в котором вы можете изменить кодировку файла). В строке меню> Выберите ENCODING> Выберите любой UTF-8 или UTF-8 без спецификации.

    См. Ссылку на разницу UTF-8 и UTF-8 без спецификации. В чем разница между UTF-8 и UTF-8 без спецификации?

    Надеюсь, это поможет. 🙂

    важно проверить, что ваш код также кодируется как UTF-8 (вы можете увидеть это свойство во множестве текстовых и кодовых редакторов).

    Потому что есть только один символ (черный квадрат), вероятно, вы используете ISO-8859-1 или ISO-8859-15.

    Вы можете видеть, что контент правильный в таблице базы данных, посмотрите на него с помощью phpmyadmin, например. Если это так, убедитесь, что ваши php-файлы закодированы в utf8, посмотрите на конфигурацию ide / editor.