Октеты со старшим битом 1
| Эта статья предлагается к удалению.
Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/12 ноября 2011.
Пока процесс обсуждения не завершён, статью можно попытаться улучшить, однако следует воздерживаться от переименований или удаления содержания, подробнее см. руководство к дальнейшему действию. Не снимайте пометку о выставлении на удаление до окончания обсуждения. Администраторам: ссылки сюда, история (последнее изменение), журналы, удалить. |
Подмножество октетов со старшим битом 1 включает те значения октета, у которых старший бит равен единице (установлен). Содержит коды 10000000..11111111 в двоичном представлении, 0x80..0xFF в шестнадцатеричном, 0200..0377 в восьмеричном, 128..255 в десятичном беззнаковом. В дополнительном коде октеты со старшим битом 1 являются отрицательными числами от -128 до -1.
Содержание |
[править] Использование для кодирования символов
[править] Причина использования
Причина особого рассмотрения данного подмножества связана с компьютерным представлением текста, в контексте которого оно называется также второй, или верхней половиной кодовой таблицы. Общеупотребительная кодовая страница ASCII является 7-битной, то есть любой ASCII-символ в 8-битном представлении имеет старший бит 0. Таким образом, октеты со старшим битом 1 можно использовать для кодирования символов, не входящих в ASCII, то есть для расширения набора символов. Поэтому 8-битную кодовую таблицу называют также расширенной таблицей ASCII, а варианты её второй половины — расширениями ASCII.
Набор символов ASCII явно недостаточен для представления текста на большинстве языков. В результате появились 8-битные кодовые страницы, совместимые с ASCII, но несовместимые между собой (см. Кракозябры). Ныне малоизвестная кодировка EBCDIC с самого начала была 8-битной, и деление символов по значению старшего бита там отсутствует.
Иной подход использует UTF-8, а также кодировки некоторых азиатских языков. Дополнительные символы кодируются последовательностями двух или более октетов со старшим битом 1.
[править] Примеры использования второй половины кодовой таблицы
| тип кодировки | 0. 1. | 2. 3. 4. 5. 6. 7. | 8. 9. | A. | B. | C. D. | E. F. |
|---|---|---|---|---|---|---|---|
| VGA | символы | печатные символы ASCII |
символы | Псевдографика | символы | ||
| ASCII | упр. симв. | не используются | |||||
| Обычная 8-битная кодовая страница | печатные символы | ||||||
| кодовая страница ISO 8859-x | упр. симв. | печатные символы | |||||
| UTF-8 | представление младшей части кода | начало 2-байтной кодовой последова- тельности | начало 3-байтной (и более) кодовой последова- тельности | ||||
[править] ISO 8859
В 1992 году международная организация ISO ввела стандарт ISO 8859 в попытке упорядочить использование ASCII-совместимых кодовых страниц. Стандарт представляет список кодировок, время от времени расширяемый. 32 позиции второй половины кодовой таблицы были отведены под управляющие символы (см. выше), а в остальных 96 позициях располагались используемые в различных языках символы, не входящие в ASCII. Предложенная кодовая страница кириллицы ISO 8859-5 не нашла применения, однако другие страницы ISO 8859 послужили основой для создания проприетарных расширений, заменяющих управляющие символы ISO 8859 печатными символами. Наиболее известным таким расширением является страница Windows-1252, сделанная на основе ISO 8859-1.
[править] КОИ-8
Кодовые страницы кириллицы семейства КОИ-8 специально разработаны с учётом возможных проблем со старшим битом — при сбросе старшего бита русские буквы (кроме Ё) превращаются в ASCII-символы так, что читаемость текста сохраняется.
[править] Проблемы с хранением и передачей
Октеты со старшим битом 1 вызывают проблемы в некоторых традиционных протоколах передачи информации, например:
- В Telnet требуется подтверждение желания другой стороны принимать 8-битные байты.
- В SMTP сервер должен специально заявить о поддержке 8 битного текста (8BITMIME).
- В RS-232 существуют режимы передачи с битом чётности (8P1, 8N1), при которых передаются фактически 7-битные байты.
[править] Связанные проблемы
При использовании кодировки MIME quoted-printable или при кодировании URL текст, закодированный октетами со старшим битом 1, выглядит нечитаемо.