Рандомная смена кодировки в php+ajax

161
27 августа 2018, 18:20

Всем привет.

Случилась следующая странная ситуация: Ajax-ом отправляется запрос, в целевом php-файле в цикле прогонялся вывод текста с кириллицей, в определённый момент возникает как будто смена кодировки с utf-8 на win1251 (или что-то похожее). Код вывода:

for ($i=0; $i<100; $i++){
    var_dump("ыИжевы");
}

вывод выглядит так: string(12) "ыИжевы" string(12) "ыИжевы" string(12) "ыИжевы" string(12) "ыИжевы" string(12) "ыИжевы" string(12) "ыИжевы" string(12) "ыИже²Ñ" string(12) "ÑÐжевÑ" string(12) "ÑÐжевÑ" string(12) "ÑÐжевÑ" string(12) "ÑÐжевÑ" string(12) "ÑÐжевÑ" string(12) "ÑÐжевÑ" string(12) "ÑÐжевы" string(12) "ыИжевы" string(12) "ыИжевы" string(12) "ыИжевы" string(12) "ыИжевы"

Причём на разных машинах появление бага стабильно, но поведение различно (например но одной возникает если писать ыИжев или как-то сокращать/изменять слово)

Ajax отправляется обычный POST запрос. Проект пустой (всего 2 файла .php). Данная проблема была протестирована на трёх разных машинах (разные сервера) на разных версиях php (5.6, 7.2), Apache/2.4.29(Ubuntu), в заголовках везде был указан utf-8. Из-за чего такое может быть?

UPD (весь код): index.php

$(document).ready(function () {
            $.ajax({
                type: "POST",
                url: "send_mail.php",
                success: function () {
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    alert(xhr.status);
                    alert(thrownError);
                }
            });
        });

send_mail.php:

header('Content-Type: text/html; charset=UTF-8');
$str = 'ыИжевы';
for ($i=0; $i<100; $i++){
    var_dump($str);
};
READ ALSO
не авторизуется

не авторизуется

Не авторизуется пользователь:

186
редирект на английскую версию сайта в .htaccess

редирект на английскую версию сайта в .htaccess

Есть сайт https://oneru/, который сразу редиректится на https://two

189