Прискорююча кнопка n назначена для пропусків при навігації по сторінкам. Пропуск для переходу на початок контента.
Даний документ є перекладом. У випадку будь-яких невідповідностей і помилок остання версія документу англійською мовою повинна розглядатися як офіційна. Першопочаткове авторське право належить W3C, як це вказано нижче.
Перекладач: World translation (Олександр Шлапак)
Аудиторія: шифрувальники XHTML/HTML (за допомогою редакторів і скриптів), розробники скриптів (PHP, JSP, і т. п.), менеджери Веб проектів, і кожен, хто шукає інформацію про те, як поводитися з кодуваннями в формах.
Який найкращий спосіб роботи з формами, що включають в себе кілька мов і скриптів?
Кращий спосіб обробки кодування в (X) HTML формах є обслуговування всіх ваших сторінок в UTF-8. UTF-8 може представляти символи із широкого спектру мов. Браузери відсилають дані форми в тому ж кодуванні, що і сторінка, що містить форму, так що користувач може заповнити дані на будь-якій мові і скрипті, яких вони потребують.
Є кілька деталей необхідних для того, щоб переконатися що цей підхід працює добре. По-перше, важливо повідомити браузеру, що сторінка форми закодована в UTF-8. Існують різні способи як повідомити браузеру про кодування вашої сторінки. Це важливо в будь-якому випадку, але тим більше, якщо ваша сторінка форми не містить ніяких символів за межами US-ASCII, але ваші користувачі можуть надрукувати інші символи.
Далі, скрипт, що приймає дані користувача повинен переконатися що введені дані дійсно закодовані в UTF-8 кодуванні (на випадок якщо відбулася яка-небудь непередбачена ситуація, наприклад зміна кодування користувачем). Перевірка можлива завдяки тому, що UTF-8 має особливу послідовність байтів, яка не зустрічається в інших кодуваннях. Якщо від користувача надійшли дані в кодуванні, що відрізняється від UTF-8, ми повинні видати йому повідомлення про помилку.
Наприклад, в Perl регулярний вираз, що перевіряє кодування користувача, може виглядати наступним чином:
$field =~
m/\A(
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*\z/x;
Цей вираз може бути адаптований для інших мов програмування. Він піклується про такі різні питання, як неправильні занадто довгі кодування і
неправильне використання сурогатів. Він повернеться вірно, якщо змінна $field закодована в UTF-8, і невірно в іншому випадку.
Розкажіть нам про те, що Ви думаєте.
Підписатися на RSS джерело.
Twitter (Новини головної сторінки)
Переклад Англійського контенту від 2007-10-26. Переклад останнього оновлення 2011-11-05 17:00 GMT
Для перегляду історії внесення змін до перекладу натисність qa-forms-utf-8 в блоге i18n.
Copyright © 2003-2011 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.