Существует множество ресурсов, описывающих лучшие практики кодирования символов и битовые последовательности, но без точной карты перемещения контента мне сложно их понять и применить.
Я знаю, как указать своему редактору кода сохранять файлы в формате UTF-8.
Я знаю, как включить метатег кодировки символов в мой HTML.
Я знаю, как объявить кодировку символов для формы.
Но в моей мысленной модели отсутствует так много шагов!
Для иллюстрации я включил диаграмму. Фиолетовый — сервер; красный — браузер; зеленым цветом обозначена ОС (на схеме Windows XP, но это может быть что угодно).
Что PHP отправляет в ответ (в теле)?
Отправляет ли он именно то, что получил от моего редактора кода, и предполагает, что отображаемые символы будут действительными?
Отражается ли это в той кодировке, в которой я сказал, что написал свой файл? в?
Кодируется ли он в стандартизированной кодировке HTTP?
< strong>Когда браузер клиента получает данные сервера, он...
Сканирует заголовки ответа на наличие значения кодировки символов?
Предполагать, что используется стандартизированная кодировка HTTP, пока она не достигнет моего метатега? (И если он найден, перекодирует ли он предыдущий контент?)
Выводит точно то, что он получил, полагаясь на то, что операционная система пользователя обрабатывает кодирование?
Когда именно применяется кодировка символов формы? (см. ниже)
Как данные пользователя вводятся в форму с помощью клавиатуры закодировано?
Кодировка ОС (как если бы браузер открыл небольшую дверцу для ввода и отображения собственных данных ОС)
Кодировка браузера (сохранение нажатий клавиш ОС в некотором формате, специфичном для браузера)
Кодировка формы (перевод символов ОС в объявленную кодировку формы)
< li>Кодировка HTML-документа (перевод символов ОС в кодировку в мета-файле). тег)
Что браузер отправляет на сервер?
< ul>
Немодифицированные пользовательские данные (зависит от №4, но, вероятно, исходная кодировка ОС)
Пользовательские данные, закодированные в объявленной кодировке формы
Пользовательские данные, закодированные в кодировке метатега HTML
Пользовательские данные в стандартизированной HTTP-кодировке
Когда сервер считывает данные обратно в PHP, это...
Декодировано из стандартизированной кодировки HTTP в кодировку времени выполнения PHP
Декодировано из кодировки объявленные в заголовках запроса.
Немодифицированные данные пользователя (полагаясь на разрешение любых конфликтов полностью лежит на разработчике)
Существует множество ресурсов, описывающих лучшие практики кодирования символов и битовые последовательности, но без точной карты перемещения контента мне сложно их понять и применить. [list] [*]Я знаю, как указать своему редактору кода сохранять файлы в формате UTF-8. [*]Я знаю, как включить метатег кодировки символов в мой HTML. [*]Я знаю, как объявить кодировку символов для формы. [/list] Но в моей мысленной модели отсутствует так много шагов! Для иллюстрации я включил диаграмму. Фиолетовый — сервер; красный — браузер; зеленым цветом обозначена ОС (на схеме Windows XP, но это может быть что угодно). [img]https://i.sstatic.net/WzKsUPwX.png[/img]
[list] [*][b]Что PHP отправляет в ответ (в теле)? [list] Отправляет ли он именно то, что получил от моего редактора кода, и предполагает, что отображаемые символы будут действительными? [*]Отражается ли это в той кодировке, в которой я сказал, что написал свой файл? в? [*]Кодируется ли он в стандартизированной кодировке HTTP? [/list]
[*]< strong>Когда браузер клиента получает данные сервера[/b], он... [list] Сканирует заголовки ответа на наличие значения кодировки символов? [*]Предполагать, что используется стандартизированная кодировка HTTP, пока она не достигнет моего метатега? (И если он найден, перекодирует ли он предыдущий контент?) [*]Выводит точно то, что он получил, полагаясь на то, что операционная система пользователя обрабатывает кодирование? [/list]
[*][b]Когда именно применяется кодировка символов формы?[/b] (см. ниже) [*][b]Как данные пользователя вводятся в форму с помощью клавиатуры закодировано?[/b] [list] Кодировка ОС (как если бы браузер открыл небольшую дверцу для ввода и отображения собственных данных ОС) [*]Кодировка браузера (сохранение нажатий клавиш ОС в некотором формате, специфичном для браузера) [*]Кодировка формы (перевод символов ОС в объявленную кодировку формы) < li>Кодировка HTML-документа (перевод символов ОС в кодировку в мета-файле). тег) [/list]
[*][b]Что браузер отправляет на сервер?[/b] < ul> Немодифицированные пользовательские данные (зависит от №4, но, вероятно, исходная кодировка ОС) [*]Пользовательские данные, закодированные в объявленной кодировке формы [*]Пользовательские данные, закодированные в кодировке метатега HTML [*]Пользовательские данные в стандартизированной HTTP-кодировке
[*][b]Когда сервер считывает данные обратно в PHP[/b], это... [list] Декодировано из стандартизированной кодировки HTTP в кодировку времени выполнения PHP [*]Декодировано из кодировки объявленные в заголовках запроса. [*]Немодифицированные данные пользователя (полагаясь на разрешение любых конфликтов полностью лежит на разработчике) [/list]