Как называется цифра буква знак препинания

Информатика online

Теория и практика решения олимпиадных задач и задач ЕГЭ по информатике. Теория информатики от 5 до 11 класса.

суббота, 3 декабря 2011 г.

Обработка текстовой информации на компьютере

Подготовка текстов является одной из самых распространённых сфер применения компьютеров. Для того, чтобы быстро получить красиво оформленный текст, следует правильно распределить этапы работы и их очерёдность.

Текстовый редактор — программа, предназначенная для создания и редактирования текстов (например, MS Блокнот, MS WordPad, Kate).
Более совершенная программа с большим количеством возможностей называется текстовым процессором (например, MS Word, OpenOffice Writer, LibreOffice Writer).

Документ — любой текст, созданный с помощью текстового редактора, вместе с включёнными в него нетекстовыми материалами.

Основные объекты текстового документа:

  • символ — минимальная единица текстовой информации: цифра, буква, знак препинания и т.д.;
  • слово — произвольная последовательность символов (цифр, букв и др.), ограниченная с двух сторон двумя служебными символами (такими как пробел, запятая, скобки и др.);
  • строка — произвольная последовательность символов между левой и правой границами документа;
  • абзац — произвольная последовательность символов, ограниченная специальными символами конца абзаца. Допускаются пустые абзацы;
  • фрагмент — произвольная последовательность символов. Фрагментом может быть отдельное слово или часть его, строка, абзац, страница и даже весь вводимый текст.
  • Этапы подготовки документа на компьютере:

    • ввод текста (набор);
    • редактирование текста;
    • форматирование текста;
    • печать (может отсутствовать, если документ используется в электронном виде).
    • Магазин Умный Ребенок

      Дисграфия и дислексия: кто виноват и что делать?

      С началом обучения в школе у некоторых детей вдруг обнаруживаются затруднения с чтением и письмом. «Дисграфиков» и «дислексиков» шпыняют учителя, дома ругают родители, да, вдобавок, дразнят сверстники. Существует немало мифов относительно возникновения дисграфии и дислексии. Один из них – что дети с подобными нарушениями, якобы, умственно отсталые. Другой миф – что этих детей учили новомодными методами, которые «изначально и в корне неверны». Чтобы разобраться, где же, все-таки, правда, обратимся к детским психологам и логопедам, а также к данным их исследований.

      Дислексия и дисграфия: что это такое? Дислексией в психоневрологии называют нарушения чтения, дисграфией – нарушения письма. Дети с дислексией допускают ошибки при чтении: пропускают звуки, добавляют ненужные, искажают звучание слов, скорость чтения у них невысокая, ребята меняют буквы местами, иногда пропускают начальные слоги слов. Часто страдает способность четко воспринимать на слух определенные звуки и использовать их в собственной речи, при чтении и письме. Нарушается при этом возможность различения близких звуков: “Б–П”, “Д–Т”, “К–Г”, “С–З”, “Ж–Ш”. Поэтому такие дети очень неохотно выполняют задания по русскому языку: пересказ, чтение, изложение – все эти виды работ им не даются.

      При дисграфии дети с трудом овладевают письмом: их диктанты, выполненные ими упражнения содержат множество грамматических ошибок. Они не используют заглавные буквы, знаки препинания, у них ужасный почерк. В средних и старших классах ребята стараются использовать при письме короткие фразы с ограниченным набором слов, но в написании этих слов они допускают грубые ошибки. Нередко дети отказываются посещать уроки русского языка или выполнять письменные задания. У них развивается чувство собственной ущербности, депрессия, в коллективе они находятся в изоляции. Взрослые с подобным дефектом не в состоянии сочинить поздравительную открытку или короткое письмо, они стараются найти работу, где не надо ничего писать. У детей с дисграфией отдельные буквы неверно ориентированы в пространстве. Они путают похожие по начертанию буквы: “З” и “Э”, “Р” и “Ь” (мягкий знак). Они могут не обратить внимания на лишнюю палочку в букве “Ш” или “крючок” в букве “Щ”. Пишут такие дети медленно, неровно; если они не в ударе, не в настроении, то почерк расстраивается окончательно. Определить наличие нарушений письма и чтения, в целом, несложно.

      Есть типичные ошибки, повторение которых из раза в раз при чтении или письме, должно вас насторожить:

      1. Смешение букв при чтении и письме по оптическому сходству: б – д; п – т; Е – З; а – о; д – у и т.д.

      2. Ошибки, связанные с нарушением произношения. Отсутствие каких-то звуков или замена одних звуков на другие в устной речи соответственно отражается и на письме. Ребенок пишет то же, что и говорит: сапка (шапка).

      3. Смешение фонем по акустико-артикуляционному сходству, что происходит при нарушениях фонематического восприятия. При этой форме дисграфии особенно тяжело детям дается письмо под диктовку. Смешиваются гласные о – у, ё – ю; согласные р – л, й – ль; парные звонкие и глухие согласные, свистящие и шипящие, звуки ц, ч, щ смешиваются как между собой, так и с другими фонемами. Например: тубло (дупло), лёбит (любит).

      4. Мы часто радуемся, когда ребенок бегло читает в дошкольном возрасте, а это при недостаточно сформированной фонетико-фонематической стороне может привести к ошибкам на письме: пропуск букв и слогов, недописание слов.

      5. Часты при дисграфии ошибки персеверации (застревание): “За зомом росла мамина” (За домом росла малина), антиципации (предвосхищение, упреждение): “Дод небом лолубым” (Под небом голубым).

      6. Большой процент ошибок из-за неумения ребенка передавать на письме мягкость согласных: сольить (солить), въезет (везет).

      7. Слитное написание предлогов, раздельное – приставок также является одним из проявлений дисграфии.

      Все ошибки, которые можно отнести к дисграфии и дислексии, специфичны, типичны и носят стойкий характер. Если ваш ребенок допускает подобные ошибки, но они единичны, то причины надо искать в другом. Не являются дисграфическими ошибки, допущенные из-за незнания грамматических правил.

      Почему возникают нарушения чтения и письма? Процесс становления чтения и письма очень сложен. В нем участвуют четыре анализатора:

      — речедвигательный, который помогает осуществлять артикулирование, то есть наше произношение;

      — речеслуховой, который помогает произвести отбор нужной фонемы;

      — зрительный, который подбирает соответствующую графему;

      — двигательный, с помощью которого осуществляется перевод графемы в кинему (совокупность определенных движений, необходимых для записи).

      Все эти сложные перешифровки осуществляются в теменно-затылочно-височной областях головного мозга и окончательно формируются на 10–11-м году жизни. Письмо начинается с мотива, побуждения – этот уровень обеспечивается лобными долями коры головного мозга.

      Огромное значение для овладения процессами письма и чтения имеет степень сформированности всех сторон речи. Поэтому нарушения или задержка в развитии фонематического восприятия, лексико-грамматических сторон, звукопроизношения на разных этапах развития являются одной из основных причин дисграфии и дислексии. Если у ребенка нарушен речевой слух, то, понятно, ему очень трудно научиться читать и писать. В самом деле, как он может читать, если нечетко слышит звучащую речь?

      Овладевать письмом он также не в состоянии, так как не знает, какой звук обозначает та или иная буква. Задача осложняется еще и тем, что ребенок должен правильно уловить определенный звук и представить его в виде знака (буквы) в быстром потоке воспринимаемой им речи. Поэтому обучение грамоте ребенка с дефектным речевым слухом – сложная педагогическая проблема. В группу риска входят дети, не страдающие речевыми нарушениями, но имеющие недостаточно четкую артикуляцию. Про них обычно говорят: “Еле языком ворочает. ”, – их называют “мямлями”. Нечеткая команда от нечеткого артикулирования, да еще при недосформированности фонематических процессов, может вызвать и нечеткие ответные реакции, что влечет за собой ошибки в чтении и письме.

      Наряду с речевым (фонематическим) слухом, люди обладают особым зрением на буквы. Оказывается, что просто видеть окружающий мир (свет, деревья, людей, различные предметы) недостаточно для овладения письмом. Необходимо обладать зрением на буквы, позволяющим запомнить и воспроизвести их очертания. Значит, для полноценного обучения ребенок должен иметь удовлетворительное интеллектуальное развитие, речевой слух и особое зрение на буквы. Иначе успешно овладеть чтением и письмом он не сможет.

      На особенности формирования речи и, как следствие, появление дисграфии и дислексии, влияют и более «глубинные» факторы. Например, неравное развитие полушарий мозга. Какая область мозга “отвечает” за письмо и чтение? Оказывается, центр речи у большинства людей находится в левом полушарии. Правая же гемисфера мозга “заведует” предметными символами, зрительными образами. Поэтому у народов, письменность которых представлена иероглифами (например, у китайцев), лучше развита правая половина мозга. Письмо и чтение у жителей Китая, в отличие от европейцев, пострадает при неполадках справа (допустим, при кровоизлиянии в мозг). Анатомическими особенностями центральной нервной системы объясняются известные врачам факты неплохих способностей к рисованию у дисграфиков. Такой ребенок с трудом осваивает письмо, но получает похвальные отзывы учителя рисования. Так и должно быть, потому что у этого ребенка более “древняя”, автоматизированная область правого полушария никоим образом не изменена. Нелады с русским языком не мешают этим детям “объясняться” с помощью рисунка (как в древности – посредством изображения на скалах, бересте, глиняных изделиях).

      Логопеды иногда обращают внимание на “зеркальный” характер письма пациентов. При этом буквы перевернуты в другую сторону – как при изображении в зеркале. Пример: “С” и “З” открываются влево; “Ч” и “Р” выдающейся частью написаны в другую сторону. Зеркальное письмо наблюдается при разных расстройствах, однако врач при подобном явлении ищет явное или скрытое левшество. Ищет и нередко находит: зеркальные перевороты букв – характерная особенность левшей.

      Играет роль и наследственный фактор, когда ребенку передается недосформированность мозговых структур, их качественная незрелость. В этом случае в результате затруднения коркового контроля при овладении письменной речью ребенок может испытывать примерно те же трудности, что и родители в школе. Существует генетическая предрасположенность к наличию этого изъяна, так как это расстройство наблюдается у нескольких членов в отдельных семьях. Нарушение чтения чаще становится очевидным ко 2-му классу.

      Иногда дислексия со временем компенсируется, но в ряде случаев остается и в более старшем возрасте. Наличие врожденных особенностей, влияющих на возникновение дислексии и дисграфии, объясняет тот факт, что нередко оба вида расстройства наблюдаются у одного и того же ребенка. При этом признаков отставания в умственном развитии у такого малыша чаще всего не наблюдается. Ребенок оказывается не в ладах с русским языком, хотя хорошо справляется с математикой и другими предметами, где, казалось бы, требуется больше сообразительности. Еще одно интересное наблюдение психологов: дислексия встречается у мальчиков в 3–4 раза чаще, чем у девочек. Около 5–8 процентов школьников страдают дислексией. Иногда, однако, причиной дисграфии может стать двуязычие в семье. В последнее время, в силу больших изменений в географии общества, когда многие вынуждены покидать свой дом, учить второй язык, эта причина становится все более актуальной.

      Причиной дислексии и дисграфии может явиться и расстройство в системах, обеспечивающих пространственное и временное воспитание. Специальная литература приводит данные института Клаперада, по которым в основе дислексии можно наблюдать действия отрицательной связи “мать – ребенок”. Так, ребенок, которого кормят насильно, который привыкает сопротивляться в отношении еды, приобретает ту же манеру и в отношении интеллектуальной пищи. Это сопротивление, которое он обнаруживает при общении с матерью, потом переносится на учителя. Важны даже такие вещи, которые на первый взгляд кажутся незначительными. Например, очень часто при чтении ребенку трудно следить за строчкой, взгляд скользит. Ученые, проведя исследования, предполагают, что если в грудном возрасте малыш лежит так, что экран телевизора попадает в поле его зрения, то глазные мышцы привыкают к хаотичному движению. Поэтому в дошкольном возрасте полезны упражнения для подготовки глазных мышц к последовательному слежению за строчкой.

      Вечный вопрос: что делать? Что делать, если у ребенка обнаружилась дислексия или дисграфия? Прежде всего: не падать духом. Такие ребята вполне способны овладеть чтением и письмом, если они будут настойчиво заниматься. Кому-то понадобятся годы занятий, кому-то – месяцы. Суть уроков – тренировка речевого слуха и буквенного зрения. Лучше всего не только обратиться к логопеду, но и самим заниматься с ребенком. Логопедические занятия обычно проводятся по определенной системе: используются различные речевые игры, разрезная или магнитная азбука для складывания слов, выделение грамматических элементов слов. Ребенок должен усвоить, как произносятся определенные звуки и какой букве при письме этот звук соответствует. Обычно логопед прибегает к противопоставлениям, “отрабатывая”, чем отличается твердое произношение от мягкого, глухое – от звонкого.

      Тренировка ведется путем повторения слов, диктанта, подбора слов по заданным звукам, анализа звуко-буквенного состава слов. Понятно, что используют наглядный материал, помогающий запомнить начертания букв: “О” напоминает обруч, “Ж” – жука, “С” – полумесяц. Стремиться наращивать скорость чтения и письма не следует – ребенок должен основательно “почувствовать” отдельные звуки (буквы). Неплохо также обратиться к психоневрологу: он может помочь логопедическим занятиям, порекомендовав определенные стимулирующие, улучшающие память и обмен веществ мозга препараты.

      Главное – помнить, что дислексия и дисграфия – это состояния, для определения которых требуется тесное сотрудничество врача, логопеда и родителей. Есть несколько упражнений, которые помогут вашему ребенку справиться с дисграфией:

      1. Ежедневно в течение 5 мин (не больше) ребенок в любом тексте (кроме газетного) зачеркивает заданные буквы. Начинать надо с одной гласной, затем перейти к согласным. Варианты могут быть самые разные. Например: букву а зачеркнуть, а букву о обвести. Можно давать парные согласные, а также те, в произношении которых или в их различии у ребенка имеются проблемы. Например: р – л, с – ш и т.д. Через 2–2,5 месяца таких упражнений (но при условии – ежедневно и не более 5 мин) улучшается качество письма.

      2. Каждый день пишите короткие диктанты карандашом. Небольшой текст не утомит ребенка, и он будет делать меньше ошибок (что очень воодушевляет…) Пишите тексты по 150 – 200 слов, с проверкой. Ошибки не исправляйте в тексте. Просто пометьте на полях зеленой, черной или фиолетовой ручкой (не в коем случае не красной!) Затем давайте тетрадь на исправление ребенку. Малыш имеет возможность не зачеркивать, а стереть свои ошибки, написать правильно. Цель достигнута: ошибки найдены самим ребенком, исправлены, а тетрадь в прекрасном состоянии. 3. Давайте ребенку упражнения на медленное прочтение с ярко выраженной артикуляцией и списывание текста.

      Занимаясь с ребенком, помните несколько основных правил:

      1. На всем протяжении специальных занятий ребенку необходим режим благоприятствования. После многочисленных двоек и троек, неприятных разговоров дома он должен почувствовать хоть маленький, но успех.

      2. Откажитесь от проверок ребенка на скорость чтения. Надо сказать, что эти проверки давно уже вызывают справедливые нарекания у психологов и дефектологов. Хорошо еще, если учитель, понимая, какой стресс испытывает ребенок при этой проверке, проводит ее без акцентов, скрыто. А ведь бывает и так, что создают полную обстановку экзамена, вызывают ребенка одного, ставят на виду часы, да еще и проверяет не своя учительница, а завуч. Может быть, для ученика без проблем это все и не имеет значения, но у наших пациентов может развиться невроз. Поэтому, если уж вам необходимо провести проверку на скорость чтения, сделайте это как можно в более щадящей форме.

      3. Помните, что нельзя давать упражнения, в которых текст написан с ошибками (подлежащими исправлению).

      4. Подход «больше читать и писать» успеха не принесет. Лучше меньше, но качественнее. Не читайте больших текстов и не пишите больших диктантов с ребенком. На первых этапах должно быть больше работы с устной речью: упражнения на развитие фонематического восприятия, звуковой анализ слова. Многочисленные ошибки, которые ребенок с дисграфией неизбежно допустит в длинном диктанте, только зафиксируются в его памяти как негативный опыт.

      Представление символов, таблицы кодировок

      Содержание

      Представление символов в вычислительных машинах [ править ]

      В вычислительных машинах символы не могут храниться иначе, как в виде последовательностей бит (как и числа). Для передачи символа и его корректного отображения ему должна соответствовать уникальная последовательность нулей и единиц. Для этого были разработаны таблицы кодировок.

      Количество символов, которые можно задать последовательностью бит длины [math]n[/math] , задается простой формулой [math]C(n) = 2^n[/math] . Таким образом, от нужного количества символов напрямую зависит количество используемой памяти.

      Таблицы кодировок [ править ]

      На заре компьютерной эры на каждый символ было отведено по пять бит. Это было связано с малым количеством оперативной памяти на компьютерах тех лет. В эти [math]64[/math] символа входили только управляющие символы и строчные буквы английского алфавита.

      С ростом производительности компьютеров стали появляться таблицы кодировок с большим количеством символов. Первой семибитной кодировкой стала ASCII7. В нее уже вошли прописные буквы английского алфавита, арабские цифры, знаки препинания. Затем на ее базе была разработана ASCII8, в которым уже стало возможным хранение [math]256[/math] символов: [math]128[/math] основных и еще столько же расширенных. Первая часть таблицы осталась без изменений, а вторая может иметь различные варианты (каждый имеет свой номер). Эта часть таблицы стала заполняться символами национальных алфавитов.

      Но для многих языков (например, арабского, японского, китайского) [math]256[/math] символов недостаточно, поэтому развитие кодировок продолжалось, что привело к появлению UNICODE.

      Кодировки стандарта ASCII [ править ]

      Определение:
      ASCII — таблицы кодировок, в которых содержатся основные символы (английский алфавит, цифры, знаки препинания, символы национальных алфавитов(свои для каждого региона), служебные символы) и длина кода каждого символа [math]n = 8[/math] бит.
      • ASCII7 — первая кодировка, пригодная для работы с текстом. Помимо маленьких букв английского алфавита и служебных символов, содержит большие буквы английского языка, цифры, знаки препинания и другие символы.
      • Кодировки стандарта ASCII ( [math]8[/math] бит):

      • ASCII — первая кодировка, в которой стало возможно использовать символы национальных алфавитов.
      • КОИ8-R — первая русская кодировка. Символы кириллицы расположены не в алфавитном порядке. Их разместили в верхнюю половину таблицы так, чтобы позиции кириллических символов соответствовали их фонетическим аналогам в английском алфавите. Это значит, что даже при потере старшего бита каждого символа, например, при проходе через устаревший семибитный модем, текст остается «читаемым».
      • CP866 — русская кодировка, использовавшаяся на компьютерах IBM в системе DOS.
      • Windows-1251 — русская кодировка, использовавшаяся в русскоязычных версиях операционной системы Windows в начале 90-х годов. Кириллические символы идут в алфавитном порядке. Содержит все символы, встречающиеся в типографике обычного текста (кроме знака ударения).
      • Структурные свойства таблицы [ править ]

        • Цифры 0-9 представляются своими двоичными значениями (например, [math]5=0101_2[/math] ), перед которыми стоит [math]0011_2[/math] . Таким образом, двоично-десятичные числа (BCD) превращаются в ASCII-строку с помощью простого добавления слева [math]0011_2[/math] к каждому двоично-десятичному полубайту.
        • Буквы A-Z верхнего и нижнего регистров различаются в своём представлении только одним битом, что упрощает преобразование регистра и проверку на диапазон. Буквы представляются своими порядковыми номерами в алфавите, записанными в двоичной системе счисления, перед которыми стоит [math]0100_2[/math] (для букв верхнего регистра) или [math]0110_2[/math] (для букв нижнего регистра).
        1 2 3 4 5 6 7 8 9 A B C D E F
        NUL SOH STX ETX EOT ENQ ACK BEL BS TAB LF VT FF CR SO SI
        1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
        2 ! « # $ % & ( ) * + , . /
        3 1 2 3 4 5 6 7 8 9 : ; ?
        4 @ A B C D E F G H I J K L M N O
        5 P Q R S T U V W X Y Z [ \ ] ^ _
        6 ` a b c d e f g h i j k l m n o
        7 p q r s t u v w x y z < | >

        Кодировки стандарта UNICODE [ править ]

        Юникод или Уникод (англ. Unicode) — это промышленный стандарт обеспечивающий цифровое представление символов всех письменностей мира, и специальных символов.

        Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей. Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа.Семейство кодировок определяет машинное представление последовательности кодов UCS.

        Коды в стандарте Unicode разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F. Часть кодов зарезервирована для использования в будущем.

        Кодовое пространство [ править ]

        Хотя формы записи UTF-8 и UTF-32 позволяют кодировать до [math]2^<31>[/math] [math](2\ 147\ 483\ 648)[/math] кодовых позиций, было принято решение использовать лишь [math]1\ 112\ 064[/math] для совместимости с UTF-16. Впрочем, даже и этого на текущий момент более чем достаточно — в версии 6.0 используется чуть менее [math]110\ 000[/math] кодовых позиций ( [math]109\ 242[/math] графических и [math]273[/math] прочих символов).

        Кодовое пространство разбито на [math]17[/math] плоскостей (англ. planes) по [math]2^<16>[/math] [math](65\ 536)[/math] символов. Нулевая плоскость называется базовой, в ней расположены символы наиболее употребительных письменностей. Первая плоскость используется, в основном, для исторических письменностей, вторая — для для редко используемых иероглифов китайского письма, третья зарезервирована для архаичных китайских иероглифов. Плоскости [math]15[/math] и [math]16[/math] выделены для частного употребления.

        Для обозначения символов Unicode используется запись вида «U+xxxx» (для кодов [math]0000_<16>..FFFF_<16>[/math] ) или «U+xxxxx» (для кодов [math]10000_<16>..FFFFF_<16>[/math] ) или «U+xxxxxx» (для кодов [math]100000_<16>..10FFFF_<16>[/math] ), где xxx — шестнадцатеричные цифры. Например, символ «я» (U+044F) имеет код [math]044F_ <16>= 1103_<10>[/math] .

        Плоскости Юникода
        Плоскость Название Диапазон символов
        Plane 0 Basic multilingual plane (BMP) U+0000…U+?FFFF
        Plane 1 Supplementary multilingual plane (SMP) U+10000…U+?1FFFF
        Plane 2 Supplementary ideographic plane (SIP) U+20000…U+?2FFFF
        Planes 3-13 Unassigned U+30000…U+?DFFFF
        Plane 14 Supplement­ary special-purpose plane (SSP) U+E0000…U+?EFFFF
        Planes 15-16 Supplement­ary private use area (S PUA A/B) U+F0000…U+?10FFFF

        Модифицирующие символы [ править ]

        Графические символы в Юникоде делятся на протяжённые и непротяжённые. Непротяжённые символы при отображении не занимают дополнительного места в строке. К примеру, к ним относятся знак ударения. Протяжённые и непротяжённые символы имеют собственные коды, но последние не могут встречаться самостоятельно. Протяжённые символы называются базовыми (англ. base characters), а непротяженные — модифицирующими (англ. combining characters). Например символ «Й» (U+0419) может быть представлен в виде базового символа «И» (U+0418) и модифицирующего символа « ?» (U+0306).

        Способы представления [ править ]

        Юникод имеет несколько форм представления (англ. Unicode Transformation Format, UTF): UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). Была разработана также форма представления UTF-7 для передачи по семибитным каналам, но из-за несовместимости с ASCII она не получила распространения и не включена в стандарт.

        UTF-8 [ править ]

        UTF-8 — представление Юникода, обеспечивающее наилучшую совместимость со старыми системами, использовавшими [math]8[/math] -битные символы. Текст, состоящий только из символов с номером меньше [math]128[/math] , при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше [math]128[/math] изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от двух до шести байт (на деле, только до четырех байт, поскольку в Юникоде нет символов с кодом больше [math]10FFFF_<16>[/math] , и вводить их в будущем не планируется), в которых первый байт всегда имеет вид [math]11xxxxxx[/math] , а остальные — [math]10xxxxxx[/math] .

        Символы UTF-8 получаются из Unicode cледующим образом:

        Unicode UTF-8 Представленные символы
        0x00000000 — 0x0000007F 0xxxxxxx ASCII, в том числе английский алфавит, простейшие знаки препинания и арабские цифры
        0x00000080 — 0x000007FF 110xxxxx 10xxxxxx кириллица, расширенная латиница, арабский алфавит, армянский алфавит, греческий алфавит, еврейский алфавит и коптский алфавит; сирийское письмо, тана, нко; Международный фонетический алфавит; некоторые знаки препинания
        0x00000800 — 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx все другие современные формы письменности, в том числе грузинский алфавит, индийское, китайское, корейское и японское письмо; сложные знаки препинания; математические и другие специальные символы
        0x00010000 — 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx музыкальные символы, редкие китайские иероглифы, вымершие формы письменности
        111111xx служебные символы c, d, e, f

        Несмотря на то, что UTF-8 позволяет указать один и тот же символ несколькими способами, только наиболее короткий из них правильный. Остальные формы, называемые overlong sequence, отвергаются по соображениям безопасности.

        Принцип кодирования [ править ]

        Правила записи кода одного символа в UTF-8 [ править ]

        1. Если размер символа в кодировке UTF-8 = [math]1[/math] байт

        Код имеет вид (0aaa aaaa), где «0» — просто ноль, остальные биты «a» — это код символа в кодировке ASCII;

        2. Если размер символа в кодировке в UTF-8 [math]\gt 1[/math] байт (то есть от [math]2[/math] до [math]6[/math] ):

        2.1 Первый байт содержит количество байт символа, закодированное в единичной системе счисления; 2.2 «0» — бит терминатор, означающий завершение кода размера 2.3 далее идут значащие байты кода, которые имеют вид (10xx xxxx), где «10» — биты признака продолжения, а «x» — значащие биты.

        В общем случае варианты представления одного символа в кодировке UTF-8 выглядят так:

        Определение длины кода в UTF-8 [ править ]
        Количество байт UTF-8 Количество значащих бит
        [math]1[/math] [math]7[/math]
        [math]2[/math] [math]11[/math]
        [math]3[/math] [math]16[/math]
        [math]4[/math] [math]21[/math]
        [math]5[/math] [math]26[/math]
        [math]6[/math] [math]31[/math]

        В общем случае количество значащих бит [math]C[/math] , кодируемых [math]n[/math] байтами UTF-8, определяется по формуле:

        [math]C = 7[/math] при [math]n=1[/math]

        [math]C = n\cdot5+1[/math] при [math]n\gt 1[/math]

        UTF-16 [ править ]

        UTF-16 — один из способов кодирования символов (англ. code point) из Unicode в виде последовательности [math]16[/math] -битных слов (англ. code unit). Данная кодировка позволяет записывать символы Юникода в диапазонах U+0000..U+D7FF и U+E000..U+10FFFF (общим количеством [math]1\ 112\ 064[/math] ), причем [math]4[/math] -байтные символы представляются как есть, а более длинные — с помощью суррогатных пар (англ. surrogate pair), для которых и вырезан диапазон [math]D800_<16>..DFFF_<16>[/math] .

        В UTF-16 символы кодируются двухбайтовыми словами с использованием всех возможных диапазонов значений (от [math]0000_<16>[/math] до [math]FFFF_<16>[/math] ). При этом можно кодировать символы Unicode в дипазонах [math]0000_<16>..D7FF_<16>[/math] и [math]E000_<16>..10FFFF_<16>[/math] . Исключенный отсюда диапазон [math]D800_<16>..DFFF_<16>[/math] используется как раз для кодирования так называемых суррогатных пар — символов, которые кодируются двумя [math]16[/math] -битными словами. Символы Unicode до [math]FFFF_<16>[/math] включительно (исключая диапазон для суррогатов) записываются как есть [math]16[/math] -битным словом. Символы же в диапазоне [math]10000_<16>..10FFFF_<16>[/math] (больше [math]16[/math] бит) уже кодируются парой [math]16[/math] -битных слов. Для этого их код арифметически сдвигается до нуля (из него вычитается минимальное число [math]10000_<16>[/math] ). В результате получится значение от нуля до [math]FFFF_<16>[/math] , которое занимает до [math]20[/math] бит. Старшие [math]10[/math] бит этого значения идут в лидирующее (первое) слово, а младшие [math]10[/math] бит — в последующее (второе). При этом в обоих словах старшие [math]6[/math] бит используются для обозначения суррогата. Биты с [math]11[/math] по [math]15[/math] имеют значения [math]11011_2[/math] , а [math]10[/math] -й бит содержит [math]0[/math] у лидирующего слова и [math]1[/math] — у последующего. В связи с этим можно легко определить к чему относится каждое слово.

        UTF-16LE и UTF-16BE [ править ]

        Один символ кодировки UTF-16 представлен последовательностью двух байт или двух пар байт. Который из двух идёт впереди, старший или младший, зависит от порядка байт. Подробнее об этом будет сказано ниже.

        UTF-32 [ править ]

        UTF-32 — один из способов кодирования символов из Юникод, использующий для кодирования любого символа ровно [math]32[/math] бита. Остальные кодировки, UTF-8 и UTF-16, используют для представления символов переменное число байт. Символ UTF-32 является прямым представлением его кодовой позиции (англ. code point).

        Главное преимущество UTF-32 перед кодировками переменной длины заключается в том, что символы Юникод непосредственно индексируемы. Получение [math]n[/math] -ой кодовой позиции является операцией, занимающей одинаковое время. Напротив, коды с переменной длиной требует последовательного доступа к [math]n[/math] -ой кодовой позиции. Это делает замену символов в строках UTF-32 простой, для этого используется целое число в качестве индекса, как обычно делается для строк ASCII.

        Главный недостаток UTF-32 — это неэффективное использование пространства, так как для хранения символа используется четыре байта. Символы, лежащие за пределами нулевой (базовой) плоскости кодового пространства редко используются в большинстве текстов. Поэтому удвоение, в сравнении с UTF-16, занимаемого строками в UTF-32 пространства не оправдано.

        Хотя использование неменяющегося числа байт на символ удобно, но не настолько, как кажется. Операция усечения строк реализуется легче в сравнении с UTF-8 и UTF-16. Но это не делает более быстрым нахождение конкретного смещения в строке, так как смещение может вычисляться и для кодировок фиксированного размера. Это не облегчает вычисление отображаемой ширины строки, за исключением ограниченного числа случаев, так как даже символ «фиксированной ширины» может быть получен комбинированием обычного символа с модифицирующим, который не имеет ширины. Например, буква «й» может быть получена из буквы «и» и диакритического знака «крючок над буквой». Сочетание таких знаков означает, что текстовые редакторы не могут рассматривать [math]32[/math] -битный код как единицу редактирования. Редакторы, которые ограничиваются работой с языками с письмом слева направо и составными символами (англ. Precomposed character), могут использовать символы фиксированного размера. Но такие редакторы вряд ли поддержат символы, лежащие за пределами нулевой (базовой) плоскости кодового пространства и вряд ли смогут работать одинаково хорошо с символами UTF-16.

        Порядок байт [ править ]

        В современной вычислительной технике и цифровых системах связи информация обычно представлена в виде последовательности байт. В том случае, если число не может быть представлено одним байтом, имеет значение в каком порядке байты записываются в памяти компьютера или передаются по линиям связи. Часто выбор порядка записи байт произволен и определяется только соглашениями.

        В общем случае, для представления числа [math]M[/math] , большего [math]255[/math] (здесь [math]255=2^8-1[/math] — максимальное целое число, записываемое одним байтом), приходится использовать несколько байт. При этом число [math]M[/math] записывается в позиционной системе счисления по основанию [math]256[/math] :

        [math]M = \sum_^A_i\cdot 256^i=A_0\cdot 256^0+A_1\cdot 256^1+A_2\cdot 256^2+\dots+A_n\cdot 256^n.[/math]

        Набор целых чисел [math]A_0,\dots,A_n[/math] , каждое из которых лежит в интервале от [math]0[/math] до [math]255[/math] , является последовательностью байт, составляющих [math]M[/math] . При этом [math]A_0[/math] называется младшим байтом, а [math]A_n[/math] — старшим байтом числа [math]M[/math] .

        Варианты записи [ править ]

        Порядок от старшего к младшему [ править ]

        Порядок от старшего к младшему (англ. big-endian): [math]A_n,\dots,A_0[/math] , запись начинается со старшего и заканчивается младшим. Этот порядок является стандартным для протоколов TCP/IP, он используется в заголовках пакетов данных и во многих протоколах более высокого уровня, разработанных для использования поверх TCP/IP. Поэтому, порядок байт от старшего к младшему часто называют сетевым порядком байт (англ. network byte order). Этот порядок байт используется процессорами IBM 360/370/390, Motorola 68000, SPARC (отсюда третье название — порядок байт Motorola, Motorola byte order).

        В этом же виде (используя представление в десятичной системе счисления) записываются числа индийско-арабскими цифрами в письменностях с порядком знаков слева направо (латиница, кириллица). Для письменностей с обратным порядком (арабская) та же запись числа воспринимается как «от младшего к старшему».

        Порядок байт от старшего к младшему применяется во многих форматах файлов — например, PNG, FLV, EBML.

        Порядок от младшего к старшему [ править ]

        Порядок от младшего к старшему (англ. little-endian): [math]A_0,\dots,A_n[/math] , запись начинается с младшего и заканчивается старшим. Этот порядок записи принят в памяти персональных компьютеров с x86-процессорами, в связи с чем иногда его называют интеловский порядок байт (по названию фирмы-создателя архитектуры x86).

        В противоположность порядку big-endian, соглашение little-endian поддерживают меньше кросс-платформенных протоколов и форматов данных; существенные исключения: USB, конфигурация PCI, таблица разделов GUID, рекомендации FidoNet.

        Переключаемый порядок [ править ]

        Многие процессоры могут работать и в порядке от младшего к старшему, и в обратном, например, ARM, PowerPC (но не PowerPC 970), DEC Alpha, MIPS, PA-RISC и IA-64. Обычно порядок байт выбирается программно во время инициализации операционной системы, но может быть выбран и аппаратно перемычками на материнской плате. В этом случае правильнее говорить о порядке байт операционной системы. Переключаемый порядок байт иногда называют англ. bi-endian.

        Смешанный порядок [ править ]

        Смешанный порядок байт (англ. middle-endian) иногда используется при работе с числами, длина которых превышает машинное слово. Число представляется последовательностью машинных слов, которые записываются в формате, естественном для данной архитектуры, но сами слова следуют в обратном порядке.

        Классический пример m >[math]4[/math] -байтных целых чисел на [math]16[/math] -битных процессорах семейства PDP-11 (известен как PDP-endian). Для представления двухбайтных значений (слов) использовался порядок little-endian, но [math]4[/math] -хбайтное двойное слово записывалось от старшего слова к младшему.

        В процессорах VAX и ARM используется смешанное представление для длинных вещественных чисел.

        Различия [ править ]

        Существенным достоинством little-endian по сравнению с big-endian порядком записи считается возможность «неявной типизации» целых чисел при чтении меньшего объёма байт (при условии, что читаемое число помещается в диапазон). Так, если в ячейке памяти содержится число [math]00000022_<16>[/math] , то прочитав его как int16 (два байта) мы получим число [math]0022_<16>[/math] , прочитав один байт — число [math]22_<16>[/math] . Однако, это же может считаться и недостатком, потому что провоцирует ошибки потери данных.

        Обратно, считается что у little-endian, по сравнению с big-endian есть «неочевидность» значения байт памяти при отладке (последовательность байт (A1, B2, C3, D4) на самом деле значит [math]D4C3B2A1_<16>[/math] , для big-endian эта последовательность (A1, B2, C3, D4) читалась бы «естественным» для арабской записи чисел образом: [math]A1B2C3D4_<16>[/math] ). Наименее удобным в работе считается middle-endian формат записи; он сохранился только на старых платформах.

        Для записи длинных чисел (чисел, длина которых существенно превышает разрядность машины) обычно предпочтительнее порядок слов в числе little-endian (поскольку арифметические операции над длинными числами производятся от младших разрядов к старшим). Порядок байт в слове — обычный для данной архитектуры.

        Маркер последовательности байт [ править ]

        Для определения формата представления Юникода в начало текстового файла записывается сигнатура — символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый маркером последовательности байт (англ. byte order mark (BOM)). Это позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует.

        Представление BOM в кодировках

        Кодирование Представление (Шестнадцатеричное)
        UTF-8 EF BB BF
        UTF-16 (BE) FE FF
        UTF-16 (LE) FF FE
        UTF-32 (BE) 00 00 FE FF
        UTF-32 (LE) FF FE 00 00

        В кодировке UTF-8, наличие BOM не является существенным, поскольку, нет альтернативной последовательности байт. Когда BOM используется на страницах или редакторах для контента закодированного в UTF-8, иногда он может представить пробелы или короткие последовательности символов, имеющие странный вид (такие как i»?). Именно поэтому, при наличии выбора, для совместимости, как правило, лучше упустить BOM в UTF-8 контенте.Однако BOM могут еще встречаться в тексте закодированном в UTF-8, как побочный продукт перекодирования или потому, что он был добавлен редактором. В этом случае BOM часто называют подписью UTF-8.

        Когда символ закодирован в UTF-16, его [math]2[/math] или [math]4[/math] байта можно упорядочить двумя разными способами (little-endian или big-endian). Изображение справа показывает это. Byte order mark указывает, какой порядок используется, так что приложения могут немедленно расшифровать контент. UTF-16 контент должен всегда начинатся с BOM.

        BOM также используется для текста обозначенного как UTF-32. Аналогично UTF-16 существует два варианта четырёхбайтной кодировки — UTF-32BE и UTF-32LE. К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом

        Проблемы Юникода [ править ]

        В Юникоде английское «a» и польское «a» — один и тот же символ. Точно так же одним символом (но отличающимся от «a» латинского) считаются русское «а» и сербское «а». Такой принцип кодирования не универсален; по-видимому, решения «на все случаи жизни» вообще не может существовать.

        Примеры [ править ]

        Если записать строку ‘hello мир’ в файл exampleBOM, а затем сделать его hex-дамп, то можно убедиться в том, что разные символы кодируются разным количеством байт. Например, английские буквы,пробел, знаки препинания и пр. кодируются одним байтом, а русские буквы — двумя

        Читайте так же:  Интересные факты о земноводных и амфибиях

        Добавить комментарий

        Ваш адрес email не будет опубликован. Обязательные поля помечены *