Атрибут accept-charset тега <form> — кодування даних форми


автор: с3с

Загальний опис

автор: NagarD

Порада

Даний атрибут не надає візуальної зміни.

автор: с3с
Нотатка

Internet Explorer до версії 7.0 містить помилку при використанні кодування ISO-8859-1, в цьому випадку браузер відправляє дані в кодуванні Windows -1252.

автор: с3с

Синтаксис

<form accept-charset="character_set">


...


</form>

Атрибут accept-charset може отримувати єдине значення:

character_set

Назва кодування, наприклад Windows-1251, UTF-8 та ін.

автор: с3с

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 3 15 12 ≤11
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 2

Приклади

+ запропонувати свій приклад у пісочниці

Форма з одним полем і словом «Київ» у ньому. Оберіть значення атрибута — і побачите, які саме байти дістануться серверу: усі рядки виміряні справжнім надсиланням у Firefox. Видно, що windows-1251 дає вчетверо коротший рядок, ISO-8859-1 перетворює кирилицю на текст &#1050;, у списку значень виграє перше, а вигадане кодування мовчки відкочується в UTF-8.

HTML

<form action="#" class="anketa" accept-charset="windows-1251">
  <p class="head">Форма пошуку</p>
  <p><input type="text" name="q" value="Київ" size="20"> <button type="submit">Знайти</button></p>
  <p class="pidpys">accept-charset="windows-1251"</p>
</form>

<p class="head">Оберіть значення атрибута — і подивіться, що дістанеться серверу</p>

<div class="vybir">
  <p><input type="radio" name="v" id="v1" checked><label for="v1">атрибута немає</label></p>
  <p><input type="radio" name="v" id="v2"><label for="v2">accept-charset="UTF-8"</label></p>
  <p><input type="radio" name="v" id="v3"><label for="v3">accept-charset="windows-1251"</label></p>
  <p><input type="radio" name="v" id="v4"><label for="v4">accept-charset="ISO-8859-1"</label></p>
  <p><input type="radio" name="v" id="v5"><label for="v5">accept-charset="koi8-r UTF-8"</label></p>
  <p><input type="radio" name="v" id="v6"><label for="v6">accept-charset="абищо"</label></p>
</div>

<p class="ryadok">Рядок запиту: <span class="zapyt"></span></p>
<p class="ryadok">Що це означає: <span class="tlumach"></span></p>

<p class="note">Значення «Київ» одне й те саме, а байти щоразу інші. Там, де в
   кодуванні немає потрібної літери, переглядач мовчки підмінює її записом
   виду &amp;#1111; — сервер отримує не текст, а ці символи буквально.</p>

CSS

.head {
    margin: 18px 0 8px;
    color: #5a6472;
    font: 600 14px/1.4 system-ui, sans-serif;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.anketa {
    max-width: 560px;
    padding: 10px 12px;
    border: 1px solid #b9c6d8;
    border-radius: 6px;
    background: #f6f9ff;
}

.anketa .head {
    margin-top: 0;
}

.anketa p {
    margin: 6px 0;
}

.pidpys {
    color: #1b4f9c;
    font: 13px/1.6 ui-monospace, monospace;
}

input,
button {
    padding: 4px 8px;
    font: inherit;
}

.vybir {
    max-width: 560px;
    padding: 6px 12px;
    border: 2px dashed #b9c6d8;
    border-radius: 6px;
}

.vybir p {
    margin: 5px 0;
}

.vybir input {
    width: auto;
    padding: 0;
    margin-right: 6px;
}

.ryadok {
    max-width: 560px;
    margin: 8px 0;
}

.zapyt,
.tlumach {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    background: #eef3fb;
    font: 14px/1.6 ui-monospace, monospace;
    color: #1b4f9c;
}

body:has(#v1:checked) .zapyt::before,
body:has(#v2:checked) .zapyt::before,
body:has(#v6:checked) .zapyt::before {
    content: "q=%D0%9A%D0%B8%D1%97%D0%B2";
}

body:has(#v3:checked) .zapyt::before {
    content: "q=%CA%E8%BF%E2";
}

body:has(#v4:checked) .zapyt::before {
    content: "q=%26%231050%3B%26%231080%3B%26%231111%3B%26%231074%3B";
}

body:has(#v5:checked) .zapyt::before {
    content: "q=%EB%C9%26%231111%3B%D7";
}

body:has(#v1:checked) .tlumach::before,
body:has(#v2:checked) .tlumach::before {
    content: "UTF-8, вісім байтів — так, як чекає сучасний сервер";
}

body:has(#v3:checked) .tlumach::before {
    content: "windows-1251, чотири байти — сервер на UTF-8 покаже кракозябри";
}

body:has(#v4:checked) .tlumach::before {
    content: "жодної кирилиці в кодуванні немає: пішло &#1050;&#1080;&#1111;&#1074;";
}

body:has(#v5:checked) .tlumach::before {
    content: "виграло ПЕРШЕ значення, koi8-r; літери ї в ньому немає — і вона теж пішла записом";
}

body:has(#v6:checked) .tlumach::before {
    content: "кодування невідоме — переглядач тихо взяв UTF-8";
}

body:has(#v3:checked) .tlumach,
body:has(#v4:checked) .tlumach,
body:has(#v5:checked) .tlumach {
    background: #fff4f4;
    color: #c0392b;
}

.note {
    max-width: 560px;
    margin-top: 14px;
    color: #5a6472;
    font-size: .9em;
}
автор: NagarD

Найпростіший приклад використання HTML атрибута accept-charset теґа <form>

<p>Приклад форми для входу з використанням атрибуту 'accept-charset'</p>
<hr>
<form accept-charset="windows-1251">
  <label>Ім'я:</label><br>
  <input type="text" name="login"><br>
  
  <label>Email:</label><br>
  <input type="email" name=""><br>
  
  <label>Ваш сайт:</label><br>
  <input type="url"><br>
  
  <label>Ваше повідомлення:</label><br>
  <textarea></textarea>
  <br>
  
  <input type="submit" value="Увійти" >
</form>
автор: с3с

Різниця між HTML 4.01 та HTML5


В HTML 4.01, список кодувань можуть бути розділені прогалинами або комами.

У HTML5, список повинен бути розділений тільки прогалинами.


Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід