Когда я изучаю заголовки для запроса, я вижу следующую полезную нагрузку в bugzilla:
Вы имеете в виду Firebug?Вы просматриваете вкладку «пост» в журнале «Сеть» в Firebug?
Потому что если это так, то он просматривает всю отправку отправки формы и пытается ее декодировать, включая содержимое любого байта.загруженные файлы - как UTF-8.Если это не удается, он вернется к кодировке по умолчанию для локали, обычно к кодовой странице Windows 1252 (аналогично ISO-8859-1), для отображения содержимого отправки формы.
Это не изменит способ, которым формабыл фактически представлен!Это просто визуализация этого в Firebug.Firebug на самом деле не знает, какую кодировку символов использовали для кодирования содержимого формы, он просто догадывается.Как правило, отправка формы не содержит никакой информации, чтобы сервер (или Firebug) знал, какая кодировка используется.
Таким образом, если вы отправляете форму без загрузки файла или с загрузкой файла, где файлсамо содержимое является допустимой последовательностью UTF-8 (включая любой файл только для ASCII), Firebug отобразит отправку всей формы в формате UTF-8 и, таким образом, отобразит опубликованное содержимое в виде ожидаемых символов.Если, с другой стороны, в байтах файла есть последовательность, которая не является допустимой последовательностью UTF-8 (что весьма вероятно для любого двоичного файла, такого как изображение), Firebug попытается декодировать байты какUTF-8, провал и возврат к cp1252.
Это даст вам отображение «Ã¦Ã¸Ã ¥ æøà ¥ æøà ¥ æøà ¥», Даже если реальный сервер будет читать это как UTF-8 и получать« æøåæøåæøå ».Firebug не знает разницы между значениями отправки текстовой формы (которые являются символами) и содержимым отправки загрузки файла (которые являются байтами; они могут также представлять символы, но в этом случае нет никакой гарантии, что загруженный файл будет использовать ту же кодировкукак форма).
Я не знаю, что такое webkitformboundary вещи ...?
В структуре MIME multipart/
есть граничная строка, котораяразбивает каждую часть.В multipart/form-data
каждая часть является полем формы.Строка границы всегда начинается с новой строки, затем --
, но тогда в качестве границы выбирается произвольная строка, обычно включающая случайную последовательность символов, которая вряд ли появится в данных самой части.
Строка границы может быть любой, и указывается в параметре Content-Type: multipart/form-data;boundary=
.Браузеры WebKit всегда используют граничную строку, начинающуюся с ----WebKitFormBoundary
.