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

Почему так происходит?

Содержимое куки user
%D0%B0%D1%80%D1%82%D0%B5%D0%BC
Почему русский не правильно отображается в куки ,надо как-то поставить utf 8 . Но как ?
Если что в куки написано "артем"
  • Вопрос задан
  • 293 просмотра
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    Язык программирования PHP
    1 неделя
    Далее
Решения вопроса 1
@Vitsliputsli
Согласно RFC 6265 4.1.1 в cookie value допустимо использовать только
%x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
                       ; US-ASCII characters excluding CTLs,
                       ; whitespace DQUOTE, comma, semicolon,
                       ; and backslash

В вашем примере, чтобы обойти это ограничение используется URL-encoding.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@maximdmitriychuk
В куках нельзя хранить произвольные UTF-8 символы — по стандарту там допустим только ASCII.
Поэтому браузер автоматически кодирует русские буквы в URL-encoding (%D0%...), отсюда такой вид.

✔ при записи — кодируй значение
6953d1fd8a401331386787.png

✔ при чтении — декодируй
6953d21da51b6954088988.png

Тогда в куке будет безопасная строка, а в коде ты получишь нормальный «артем».
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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