Кодировка символов unicode. Что такое Unicode? Основные принципы Юникода

Кодировка символов unicode. Что такое Unicode? Основные принципы Юникода

Как вы оцениваете образовательную робототехн ику в России и что нас ждет в ближайшие 5 лет? Такой вопрос мы задали тренерам, судьям и участникам Всероссийской робототехнической олимпиады. Самые интересные ответы ниже.

Сергей Филиппов, учитель робототехники ФМЛ 239, Санкт-Петербург, тренер команд-победителей российских и международных соревнований:

На уровне школьной робототехники я считаю, что у нас ускоренное развитие и мы входим в мировой уровень. Студенческая — сильно отстает — это не одно десятилетие надо активно работать. И возникнет странная ситуация, когда мотивированные, талантливые и очень опытные школьники придут в вузы. Не всех их смогут обеспечить достаточно интенсивной и интересной учебой и работой.

В прошлом году на ВРО наблюдался стремительный скачок усложнения творческих проектов, и они были очень интересные. В этом году тенденция поддерживается, но немножко устаканивается — нового рывка не было. Хотя предлагаются довольно интересные решения, технологии.

Федеральный тьютор по робототехнике и высоким технологиям в детских технопарках «Кванториум»:

Я думаю, что поколение детей, которое выросло, скажем, с уровня LEGO, перейдет сейчас уже на следующий этап, добавится более сложная электроника, мехатроника и прочее. И я думаю, что будущее за DIY-роботами — сделай своими руками — мейкеры и прочие ребята, которые будут делать роботов как-будто из хлама. Собрали своего робота и вау.

Динара Гагарина, Занимательная робототехника, и Андрей Гурьев, Кванториум

Александр Колотов, Университет Иннополис:

О том, что будет дальше, можно только фантазировать. Если мы посмотрим тренды в сети интернет, какие задачи сейчас решаются ведущими робототехниками, вузами исследовательскими или уже реализуется в коммерческих проектах, то видно, что образовательная робототехника в какой-то момент должна начать соответствовать этому уровню, что должна выстраиваться какая-то определенная ступенька подготовки. Задачи, которые должны ставить перед собой участники, тренеры, которые готовят этих участников, с каждым годом усложняться должны. Потому что, если говорить избитую достаточно фразу из «Алисы в Зазеркалье», что чтобы остаться на месте, нужно быстро бежать, а чтобы попасть куда-то, нужно бежать в два раза быстрее. Также и сейчас, если мы хотим, чтобы наши школьники, которые сейчас занимаются робототехникой, через 5 лет условно пришли в вуз, а через 5 лет после вуза пришли на предприятие, получается через 10 лет, то они должны задачи решать не 30-летней давности, которые потеряли актуальность, а задачи, которые сейчас актуальны, только тогда через 10 лет они смогут выбиваться в тот робототехнический уклад, которые сформируется через 10 лет, а он сформируется мгновенно. Мы знаем, что 10 лет назад облачные технологии, нейроинтерфейсы и нейронные сетки — это все была какая-то фантазия, сейчас инструментарий шагнул далеко вперед и каких-то базовых основ, базовой математики уже достаточно, чтобы начать понимать и с этим знакомиться. Базовая математика у школьников есть. Математика, программирование, физика есть. Соответственно они могут научиться не просто решать задачи позавчерашнего дня, а хотя бы вчерашнего или сегодняшнего дня. Я вижу развитие такое. Это не только в России, но и по всему миру. А у нас, может быть, получится задать тон, какие задачи могут решать школьники.

Нашим школьникам, это не секрет, традиционно нравится решать сложные задачи, которые являются challenge . Мы слабы в доведении до конца, т.е. нам нравится задача, она нас мотивирует, но когда уже более-менее все понятно, как все должно работать, все выстроено…. Плюс, наверное, это российская тоже черта — перфекционизм — это другая проблема, когда хочется все время лучше и лучше. Можно остановиться …

Игорь Лосицкий , Университет ИТМО:

Я хорошо оцениваю состояние, поскольку, если сравнивать с мировой, то у нас неплохие результаты, судя по результатам олимпиады, значит и уровень образовательной робототехники в норме относительно среднемирового. Перспективы … Не знаю… Как-то началось все очень так с каким-то пафосом, с какими-то ожиданиями, а, глядя по сторонам, можно заметить, что занимаются одни и те же люди, больше их не становится, уровень иногда растет, иногда падает. Потому что перспектив у детей, как робототехников, в России очень мало. Они все равно становятся либо инженерами, либо программистами в итоге… , но я пока не знаю, чтобы это было таким же массовым явлением, которое сильно востребовано в России настолько же, например, как программирование.

Максим Васильев, РАОР:

Если сравнивать, например, с другими странами, в том числе близлежащими, то состояние образовательной робототехники в России неплохое. Она достаточно популярна, она поддерживается на очень многих уровнях — государственном, частном, например, частный университет Иннополис проводит серьезную олимпиаду. Много движений, где робототехника, начинает свое место занимать, начиная от допобразования до Кванториумов, робототехника учитывается при поступлении в вузы. Процесс идет сейчас достаточно семимильными шагами. Думаю, что все хорошо, если о перспективах говорить, то будет еще лучше.

Усложнение будет в том смысле, что меняются технологии, добавляются вещи общего технического плана, в том числе опускаются в образовательную робототехнику. LEGO выпустит новый набор по робототехнике, там будут какие-то новые технологии, которых сейчас нет в EV3 (который сейчас самый популярный). Подтянутся другие производители, которые тоже это включат (может быть, это элементы технического зрения). Это все, с одной стороны усложнится, но тем не менее это все равно будет доступно детям.

В школе не нужно заниматься образовательной робототехникой… Не к месту совершенно. У школы есть стандартные образовательные предметы, которые крайне нужны и важны: физика, химия, математика. Лучше бы астрономию вернули, черчение… Учителям это не нужно. Особенно сидеть, собирать этих роботов. Они плохо понимают, это не в их интересах. Учитель информатики учился на информатика, ему механика чужда.

Дмитрий Алексеев, генеральный директор компании DNS, Центр развития робототехники во Владивостоке:

С образовательной робототехникой все хорошо. Нас ждет развитие робототехники самой по себе… Будут усложняться сами роботы. Я думаю, что мы скоро увидим в рамках школьных соревнований задачи на распознавание образов, техническое зрение. Честно говоря, думаю, что следующая версия LEGO будет это поддерживать. Ну, если LEGO не сделает, мы сделаем.

Департамент образования и науки Тюменской области

Тюменский областной государственный институт

развития регионального образования

ОБРАЗОВАТЕЛЬНАЯ

РОБОТОТЕХНИКА
Методические рекомендации

Составитель:

Бояркина Ю.А., к.п.н., доцент кафедры естественно-математического образования ТОГИРРО

Образовательная робототехника.

Методическое пособие. / Составитель Бояркина Ю.А.-

Тюмень: ТОГИРРО, 2013

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

В пособии рассматривается круг вопросов, связанных с использованием образовательной робототехники на уроках в начальной школе, основной и старшей школе в условиях введения ФГОС. Пособие содержит апробированные материалы, обобщающие опыт внедрения образовательной робототехники учебными заведениями Тюменской области.

Методическое пособие рекомендуется педагогическим работникам, реализующим программы общего образования в условиях введения ФГОС в образовательном учреждении, методистам, курирующим реализацию направления робототехники, слушателям курсов повышения квалификации, руководителям образовательных учреждений.

ГЛАВА I

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ И МЕТОДИЧЕСКИЕ ОСОБЕННОСТИ РЕАЛИЗАЦИИ РОБОТОТЕХНИКИ В ОБРАЗОВАТЕЛЬНОМ ПРОЦЕССЕ ШКОЛЫ

Хороший инженер должен состоять из четырёх частей: на 25% - быть теоретиком; на 25% - художником, на 25% - экспериментатором и на 25% он должен быть изобретателем

П.Л.Капица

Уже в школе дети должны получить возможность
раскрыть свои способности, подготовиться к жизни
в высокотехнологичном конкурентном мире

Д. А. Медведев


    1. ВВЕДЕНИЕ

Робототехника - прикладная наука, занимающаяся разработкой автоматизированных технических систем. Робототехника опирается на такие дисциплины, как электроника, механика, программирование.

Робототехника является одним из важнейших направлений научно- технического прогресса, в котором проблемы механики и новых технологий соприкасаются с проблемами искусственного интеллекта. На современном этапе в условиях введения ФГОС возникает необходимость в организации урочной и внеурочной деятельности, направленной на удовлетворение потребностей ребенка, требований социума в тех направлениях, которые способствуют реализации основных задач научно-технического прогресса. К таким современным направлениям в школе можно отнести робототехнику и робототехническое конструирование. В настоящий момент во многих образовательных учреждениях России и Тюменской области осуществляется попытка встроить в учебный процесс Lego робототехнику. Проводятся соревнования по робототехнике, учащиеся участвуют в различных конкурсах, в основе которых -использование новых научно-технических идей, обмен технической информацией и инженерными знаниями.

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

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

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

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


Основное оборудование, используемое при обучении детей робототехнике в школах, - это ЛЕГО-конструкторы.

Конструкторы LEGO бывают различных видов, направленные на образование детей с учетом удовлетворения возрастных особенностей и потребностей ребенка.

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


  1. WeDo – конструктор, предназначенный для детей от 7 до 11 лет. Позволяет строить модели машин и животных, программировать их действия и поведение.

  2. E - lab «Энергия, работа, мощность» - для детей от 8 лет. Знакомит учащихся с различными источниками энергии, способами ее преобразования и сохранения.

  3. E - lab «Возобновляемые источники энергии» - для детей от 8 лет. Знакомит учащихся с тремя основными возобновляемыми источниками энергии.

  4. «Технология и физика» - для детей от 8 лет. Позволяет изучить основные законы механики и теории магнетизма.

  5. «Пневматика» - для детей от 10 лет. Позволяет конструировать системы, в которых используется поток воздуха.

  6. LEGO Mindstorms «Индустрия развлечений. Перворобот» (RCX ) - это конструктор (набор сопрягаемых деталей и электронных блоков) для детей от 8 лет. Предназначен для создания программируемых роботизированных устройств.

  7. LEGO Mindstorms «Автоматизированные устройства. Перворобот» (RCX ) - для детей от 8 лет. Позволяет создать программируемые роботизированные устройства.

  8. LEGO Mindstorms «Перворобот» (NXT ) - для детей от 8 лет. Позволяет создавать как простые, так и достаточно сложные программируемые роботизированные устройства.
Все школьные наборы на основе LEGO ® -конструктора ПервоРобот RCX, NXT предназначены для того, чтобы ученики в основном работали группами. Поэтому учащиеся одновременно приобре-тают навыки сотрудничества и умение справляться с индивидуальными заданиями, составляющими часть общей задачи. В процессе конструирования добиваться того, чтобы созданные модели работа-ли и отвечали тем задачам, которые перед ними ставятся. Учащиеся получают возможность учиться на собственном опыте, проявлять творческий подход при решении поставленной задачи. Задания разной трудности учащиеся осваивают поэтапно. Основной принцип обучения «шаг за шагом», являющийся ключевым для LEGO®, обеспечивает учащемуся возможность работать в собственном темпе.

Конструкторы ПервоРобот NXT позволяют учителю самосовершенствоваться, брать новые идеи, привлечь и удержать внимание учащихся, организовать учебную деятельность, применяя различные предметы, и проводить интегрированные занятия. Дополнительные элементы, содержа-щиеся в каждом наборе конструкторов, позволяют учащимся создавать модели собственного изоб-ретения, конструировать роботов, которые используются в жизни.

Данные конструкторы показывают учащимся взаимосвязь между различными областями зна-ний, на уроках информатики решать задачи по физике, математике и т.д. Модели конструктора ПервоРобота NXT дают представление о работе механических конструкций, о силе, движении и скорости, помогают производить математические вычисления. Данные наборы помогают изучить разделы информатики: моделирование и программирование.


    1. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ИСПОЛЬЗОВАНИЯ РОБОТОТЕХНИКИ В ОБРАЗОВАТЕЛЬНОМ ПРОЦЕССЕ

В рамках школьного урока и дополнительного образования робототехнические комплексы Лего могут применяться по следующим направлениям:

Эффективность обучения основам робототехники зависит и от организации занятий, проводимых с применением следующих методов:

  • Объяснительно - иллюстративный - предъявление информации различными способами (объяснение, рассказ, беседа, инструктаж, демонстрация, работа с технологическими картами и др);

  • Эвристический - метод творческой деятельности (создание творческих моделей и т.д.);

  • Проблемный - постановка проблемы и самостоятельный поиск её решения обучающимися;

  • Программированный - набор операций, которые необходимо выполнить в ходе выполнения практических работ (форма: компьютерный практикум, проектная деятельность);

  • Репродуктивный - воспроизводство знаний и способов деятельности (форма: собирание моделей и конструкций по образцу, беседа, упражнения по аналогу);

  • Частично - поисковый - решение проблемных задач с помощью педагога;

  • Поисковый – самостоятельное решение проблем;

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

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

Основные этапы разработки Лего-проекта:


  1. Обозначение темы проекта.

  2. Цель и задачи представляемого проекта. Гипотеза.

  3. Разработка механизма на основе конструктора Лего-модели NXT (RCX).

  4. Составление программы для работы механизма в среде Lego Mindstorms (RoboLab).

  5. Тестирование модели, устранение дефектов и неисправностей.

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

Дополнительным преимуществом изучения робототехники является создание команды и в перспективе участие в городских, региональных, общероссийских и международных олимпиадах по робототехнике, что значительно усиливает мотивацию учеников к получению знаний. Основная цель использования робототехники – это социальный заказ общества: сформировать личность, способную самостоятельно ставить учебные цели, проектировать пути их реализации, контролировать и оценивать свои достижения, работать с разными источниками информации, оценивать их и на этой основе формулировать собственное мнение, суждение, оценку. То есть формирование ключевых компетентностей учащихся.

Компетентностный подход в общем и среднем образовании объективно соответствует и социальным ожиданиям в сфере образования, и интересам участников образовательного процесса. Компетентностный подход – это подход, акцентирующий внимание на результатах образования, причём в качестве результата образования рассматривается не сумма усвоенной информации, а способность действовать в различных проблемных ситуациях.

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

Более подробно возможности включения робототехники в изучение общеобразовательных предметов представлены в таблице 1.

Таблица 1

Возможности использования робототехники в образовательном процессе


НАЧАЛЬНАЯ ШКОЛА

ОСНОВНАЯ ШКОЛА

СТАРШАЯ ШКОЛА

Урочная деятельность

Образовательные конструкторы: Мир вокруг нас

Математика


Геометрия
Простейшие геометрические фигуры
Периметр
Равные фигуры
Площадь, единицы измерения площади
Симметрия

Логика и комбинаторика


Свойства предметов, классификация по признакам
Последовательности, цепочки
Пары и группы предметов. Одинаковые и разные множества. Мешки
Логические и комбинаторные задачи

Проекты DUPLO

На уроках технологии, развития речи

Буквы DUPLO

На уроках английского языка

ПервоРобот ЛЕГО

Урок окружающего мира

Раздел «Животный мир»

Показ запрограммиро-ванных роботов на уроках окружающего мира, математики (пространственные отношения).

Информатика (программирование роботов)
Технология: групповая работа с WEDO


ИНФОРМАТИКА

http://gaysinasnz.ucoz.ru/index/planirovanie_na_2011_2012_uchebnyj_god/0-35 - эл. портфолио Гайсиной И.Р., учителя информатики, г. Снежинск


Данная кодировка решает пользовательские проблемы (см. выше), но создает новые, технические проблемы: как пересылать символы в формате Unicode, используя 1 байт. 8-битные единицы являются наименьшими передаваемыми единицами в большинстве компьютеров, а также являющимися минимальными единицами, используемыми при сетевых соединениях на основе протокола TCP/IP. Использование 1-го байта для представления 1-го символа стало эпизодом истории (факт появления такой кодировки обусловлен тем, что компьютеры зародились в Европе и США, где долгое время обходились 96 символами).

Существует 4 основных способа кодировки байтами в формате Unicode:

UTF-8: 128 символов кодируются одним байтом (формат ASCII), 1920 символов кодируются 2-мя байтами ((Roman, Greek, Cyrillic, Coptic, Armenian, Hebrew, Arabic символы), 63488 символов кодируются 3-мя байтами (Китайский, японский и др.) Оставшиеся 2 147 418 112 символы (еще не использованы) могут быть закодированы 4, 5 или 6-ю байтами.

UCS-2: Каждый символ представлен 2-мя байтами. Данная кодировка включает лишь первые 65 535 символов из формата Unicode.

UTF-16: Является расширением UCS-2, включает 1 114 112 символов формата Unicode. Первые 65 535 символов представлены 2-мя байтами, остальные - 4-мя байтами.

USC-4: Каждый символ кодируется 4-мя байтами.

Получается, что 8 бит используются для кодирования европейских языков, а для китайского, японского и корейского языков много больше. Это может повлиять на объем занимаемого дискового пространства и на скорость передачи по сети. Для основных кодировок картина следующая (К (%) - увеличение дискового пространства и снижение скорости передачи по сети):

UTF-8: никаких изменений для американской ASCII, незначительное ухудшение (К = несколько %) для ISO-8859-1, К=50% для китайского, японского, корейского и К=100% для греческого и кириллицы.

UCS-2 и UTF-16: никаких изменений для китайского, японского, корейского; К=100% для американской ASCII, ISO-8859-1, греческого и кириллицы.

UCS-4: К=100% для китайского, японского, корейского; К=300% для американской ASCII, ISO-8859-1, греческого и кириллицы.

В итоге получается, что UTF-8 кодировка занимает меньше дискового пространства и позволяется передавать данные по сети с большей скоростью.

Unicode 3.0

Стандарт Unicode был разработан с целью создания единой кодировки символов всех современных и многих древних письменных языков. Каждый символ в этом стандарте кодируется 16 битами, что позволяет ему охватить несравненно большее количество символов, чем принятые ранее 7- и 8-битовые кодировки. Еще одним важным отличием Unicode от других систем кодировки является то, что он не только приписывает каждому символу уникальный код, но и определяет различные характеристики этого символа, например:

Тип символа (прописная буква, строчная буква, цифра, знак препинания и т.д.);

Атрибуты символа (отображение слева направо или справа налево, пробел, разрыв строки и т.д.);

Соответствующая прописная или строчная буква (для строчных и прописных букв соответственно);

Соответствующее числовое значение (для цифровых символов).

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

Рис. 6. Кодировка Unicode 3.0.

Формат UTF-8: Стандарт Unicode является основой для хранения и текста во многих современных компьютерных системах. Однако, он не совместим с большинством Интернет-протоколов, поскольку его коды могут содержать любые байтовые значения, а протоколы обычно используют байты 00 - 1F и FE - FF в качестве служебных. Для достижения совместимости были разработаны несколько форматов преобразования Unicode (UTFs, Unicode Transformation Formats), из которых на сегодня наиболее распространенным является UTF-8. Этот формат определяет следующие правила преобразования каждого кода Unicode в набор байтов (от одного до трех), пригодных для транспортировки Интернет-протоколами.

Диапазон Unicode Двоичный код символа Байты UTF-8 (двоичные)

0000 - 007F 00000000 0zzzzzzz 0zzzzzzzz

0080 - 07FF 00000yyy yyzzzzzz 110yyyyy 10zzzzzz

0800 - FFFF xxxxyyyy yyzzzzzz 1110xxxx 10yyyyyy 10zzzzzz

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

Формат UTF-16: Дальнейшее развитие стандарта Unicode связано с добавлением новых языковых плоскостей, т.е. символов в диапазонах 10000 - 1FFFF, 20000 - 2FFFF и т.д., куда предполагается включать кодировку для письменностей мертвых языков, не попавших в таблицу, приведенную выше. Для кодирования этих дополнительных символов был разработан новый формат UTF-16. Для базовой языковой плоскости, т.е. для символов с кодами от 0000 до FFFF, он совпадает с Unicode.

КОИ-8

КОИ-8 (код обмена информацией, 8 битов), KOI8 - восьмибитовая ASCII-совместимая кодовая страница, разработанная для кодирования букв кириллических алфавитов.

Существует также семибитовая версия кодировки, не полностью совместимая с ASCII - КОИ-7. КОИ-7 и КОИ-8 описаны в ГОСТ 19768-74 (сейчас недействителен).

Разработчики КОИ-8 поместили символы русского алфавита в верхней части кодовой таблицы таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что если в тексте, написанном в КОИ-8, убирать восьмой бит каждого символа, то получается «читабельный» текст, хотя он и написан латинскими символами. Например, слова «Русский Текст» превратились бы в «rUSSKIJ tEKST». Как побочное следствие, символы кириллицы оказались расположены не в алфавитном порядке.

Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов. Русский алфавит описывается в кодировке KOI8-R, украинский - в KOI8-U.

KOI8-R стал фактически стандартом для русской кириллицы в юникс-подобных операционных системах и электронной почте.

В Microsoft Windows KOI8-R присвоен код страницы 20866, KOI8-U - 21866.

Нижняя часть таблицы кодировки (латиница) полностью соответствует кодировке ASCII.

В приведённых таблицах числа под буквами обозначают шестнадцатеричный код буквы в Юникоде.

Рис. 7. КОИ8-R

Рис. 8. КОИ8-U

Задания:

1. Преобразуйте в десятичный вид целые числа:

2. Преобразуйте в десятичный вид вещественные числа:

1 00011100 10100000000000000000000

0 00001101 11001000000000000000000

101 110 99 111 100 105 110 103

234 238 228 232 240 238 226 234 224

203 207 196 201 210 207 215 203 193

5. Записать дату своего рождения (число, месяц, год) в виде короткого целого, длинного целого, упакованного десятичного числа. Записать соответствующие отрицательные числа. Проверить правильность записи.

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

7. Записать свою фамилию, имя, отчество в кодировке ASCII и КОИ8-R.


| | | 4 | | | | | |

Поскольку в ряде компьютерных систем (например, Windows NT ) фиксированные 16-битные символы уже использовались в качестве кодировки по умолчанию, было решено все наиболее важные знаки кодировать только в пределах первых 65 536 позиций (так называемая англ. basic multilingual plane, BMP ). Остальное пространство используется для «дополнительных символов» (англ. supplementary characters ): систем письма вымерших языков или очень редко используемых китайских иероглифов, математических и музыкальных символов.

Для совместимости со старыми 16-битными системами была изобретена система UTF-16 , где первые 65 536 позиций, за исключением позиций из интервала U+D800…U+DFFF, отображаются непосредственно как 16-битные числа, а остальные представляются в виде «суррогатных пар» (первый элемент пары из области U+D800…U+DBFF, второй элемент пары из области U+DC00…U+DFFF). Для суррогатных пар была использована часть кодового пространства (2048 позиций), ранее отведённого для «символов для частного использования».

Поскольку в UTF-16 можно отобразить только 2 20 +2 16 −2048 (1 112 064) символов, то это число и было выбрано в качестве окончательной величины кодового пространства Юникода.

Хотя кодовая область Юникода была расширена за пределы 2 16 уже в версии 2.0, первые символы в «верхней» области были размещены только в версии 3.1.

Роль этой кодировки в веб-секторе постоянно растёт, на начало 2010 доля веб-сайтов, использующих Юникод, составила около 50 %.

Версии Юникода

По мере изменения и пополнения таблицы символов системы Юникода и выхода новых версий этой системы, - а эта работа ведётся постоянно, поскольку изначально система Юникод включала только Plane 0 - двухбайтные коды, - выходят и новые документы ISO . Система Юникод существует в общей сложности в следующих версиях:

  • 1.1 (соответствует стандарту ISO/IEC 10646-1:), стандарт 1991-1995 годов.
  • 2.0, 2.1 (тот же стандарт ISO/IEC 10646-1:1993 плюс дополнения: «Amendments» с 1-го по 7-е и «Technical Corrigenda» 1 и 2), стандарт 1996 года.
  • 3.0 (стандарт ISO/IEC 10646-1:2000), стандарт 2000 года.
  • 3.1 (стандарты ISO/IEC 10646-1:2000 и ISO/IEC 10646-2:2001), стандарт 2001 года.
  • 3.2, стандарт 2002 года .
  • 4.0, стандарт .
  • 4.01, стандарт .
  • 4.1, стандарт .
  • 5.0, стандарт .
  • 5.1, стандарт .
  • 5.2, стандарт .
  • 6.0, стандарт .
  • 6.1, стандарт .
  • 6.2, стандарт .

Кодовое пространство

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

Кодовое пространство разбито на 17 плоскостей по 2 16 (65536) символов. Нулевая плоскость называется базовой , в ней расположены символы наиболее употребительных письменностей. Первая плоскость используется, в основном, для исторических письменностей, вторая - для редко используемых иероглифов ККЯ , третья зарезервирована для архаичных китайских иероглифов . Плоскости 15 и 16 выделены для частного употребления.

Для обозначения символов Unicode используется запись вида «U+xxxx » (для кодов 0…FFFF), или «U+xxxxx » (для кодов 10000…FFFFF), или «U+xxxxxx » (для кодов 100000…10FFFF), где xxx - шестнадцатеричные цифры. Например, символ «я» (U+044F) имеет код 044F = 1103 .

Система кодирования

Универсальная система кодирования (Юникод) представляет собой набор графических символов и способ их кодирования для компьютерной обработки текстовых данных.

Графические символы - это символы, имеющие видимое изображение. Графическим символам противопоставляются управляющие символы и символы форматирования.

Графические символы включают в себя следующие группы:

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

Юникод - это система для линейного представления текста. Символы, имеющие дополнительные над- или подстрочные элементы, могут быть представлены в виде построенной по определённым правилам последовательности кодов (составной вариант, composite character) или в виде единого символа (монолитный вариант, precomposed character).

Модифицирующие символы

Представление символа «Й» (U+0419) в виде базового символа «И» (U+0418) и модифицирующего символа « ̆» (U+0306)

Графические символы в Юникоде подразделяются на протяжённые и непротяжённые (бесширинные). Непротяжённые символы при отображении не занимают места в строке . К ним относятся, в частности, знаки ударения и прочие диакритические знаки . Как протяжённые, так и непротяжённые символы имеют собственные коды. Протяжённые символы иначе называются базовыми (англ. base characters ), а непротяжённые - модифицирующими (англ. combining characters ); причём последние не могут встречаться самостоятельно. Например, символ «á» может быть представлен как последовательность базового символа «a» (U+0061) и модифицирующего символа « ́» (U+0301) или как монолитный символ «á» (U+00C1).

Особый тип модифицирующих символов - селекторы варианта начертания (англ. variation selectors ). Они действуют только на те символы, для которых такие варианты определены. В версии 5.0 варианты начертания определены для ряда математических символов, для символов традиционного монгольского алфавита и для символов монгольского квадратного письма .

Формы нормализации

Поскольку одни и те же символы можно представить различными кодами, что иногда затрудняет обработку, существуют процессы нормализации, предназначенные для приведения текста к определённому стандартному виду.

В стандарте Юникода определены 4 формы нормализации текста:

  • Форма нормализации D (NFD) - каноническая декомпозиция. В процессе приведения текста в эту форму все составные символы рекурсивно заменяются на несколько составных, в соответствии с таблицами декомпозиции.
  • Форма нормализации C (NFC) - каноническая декомпозиция с последующей канонической композицией. Сначала текст приводится к форме D, после чего выполняется каноническая композиция - текст обрабатывается от начала к концу и выполняются следующие правила:
    • Символ S является начальным , если он имеет нулевой класс модификации в базе символов Юникода.
    • В любой последовательности символов, стартующей с начального символа S, символ C блокируется от S, если и только если между S и C есть какой-либо символ B, который или является начальным, или имеет одинаковый или больший класс модификации, чем C. Это правило распространяется только на строки, прошедшие каноническую декомпозицию.
    • Первичным композитом считается символ, у которого есть каноническая декомпозиция в базе символов Юникода (или каноническая декомпозиция для хангыля и он не входит в список исключений).
    • Символ X может быть первично совмещён с символом Y, если и только если существует первичный композит Z, канонически эквивалентный последовательности .
    • Если очередной символ C не блокируется последним встреченным начальным базовым символом L и он может быть успешно первично совмещён с ним, то L заменяется на композит L-C, а C удаляется.
  • Форма нормализации KD (NFKD) - совместимая декомпозиция. При приведении в эту форму все составные символы заменяются, используя как канонические карты декомпозиции Юникода, так и совместимые карты декомпозиции, после чего результат ставится в каноническом порядке.
  • Форма нормализации KC (NFKC) - совместимая декомпозиция с последующей канонической композицией.

Термины «композиция» и «декомпозиция» понимают под собой соответственно соединение или разложение символов на составные части.

Примеры

Исходный текст NFD NFC NFKD NFKC
Français Franc\u0327ais Fran\xe7ais Franc\u0327ais Fran\xe7ais
А, Ё, Й \u0410, \u0401, \u0419 \u0410, \u0415\u0308, \u0418\u0306 \u0410, \u0401, \u0419
\u304b\u3099 \u304c \u304b\u3099 \u304c
Henry IV Henry IV Henry IV Henry IV Henry IV
Henry Ⅳ Henry \u2163 Henry \u2163 Henry IV Henry IV

Двунаправленное письмо

Стандарт Юникод поддерживает письменности языков как с направлением написания слева направо (англ. left-to-right, LTR ), так и с написанием справа налево (англ. right-to-left, RTL ) - например, арабское и еврейское письмо. В обоих случаях символы хранятся в «естественном» порядке; их отображение с учётом нужного направления письма обеспечивается приложением.

Кроме того, Юникод поддерживает комбинированные тексты, сочетающие фрагменты с разным направлением письма. Данная возможность называется двунаправленность (англ. bidirectional text, BiDi ). Некоторые упрощённые обработчики текста (например, в сотовых телефонах) могут поддерживать Юникод, но не иметь поддержки двунаправленности. Все символы Юникода поделены на несколько категорий: пишущиеся слева направо, пишущиеся справа налево, и пишущиеся в любом направлении. Символы последней категории (в основном это знаки пунктуации) при отображении принимают направление окружающего их текста.

Представленные символы

Юникод включает практически все современные письменности , в том числе:

и другие.

С академическими целями добавлены многие исторические письменности, в том числе: руны , древнегреческая , египетские иероглифы , клинопись , письменность майя , этрусский алфавит .

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

Однако в Юникод принципиально не включаются логотипы компаний и продуктов, хотя они и встречаются в шрифтах (например, логотип Apple в кодировке MacRoman (0xF0) или логотип Windows в шрифте Wingdings (0xFF)). В юникодовских шрифтах логотипы должны размещаться только в области пользовательских символов.

ISO/IEC 10646

Консорциум Юникода работает в тесной связи с рабочей группой ISO/IEC/JTC1/SC2/WG2, которая занимается разработкой международного стандарта 10646 (ISO /IEC 10646). Между стандартом Юникода и ISO/IEC 10646 установлена синхронизация, хотя каждый стандарт использует свою терминологию и систему документации.

Сотрудничество Консорциума Юникода с Международной организацией по стандартизации (англ. International Organization for Standardization, ISO ) началось в 1991 году . В 1993 году ISO выпустила стандарт DIS 10646.1. Для синхронизации с ним Консорциум утвердил стандарт Юникода версии 1.1, в который были внесены дополнительные символы из DIS 10646.1. В результате значения закодированных символов в Unicode 1.1 и DIS 10646.1 полностью совпали.

В дальнейшем сотрудничество двух организаций продолжилось. В 2000 году стандарт Unicode 3.0 был синхронизирован с ISO/IEC 10646-1:2000. Предстоящая третья версия ISO/IEC 10646 будет синхронизирована с Unicode 4.0. Возможно, эти спецификации даже будут опубликованы как единый стандарт.

Аналогично форматам UTF-16 и UTF-32 в стандарте Юникода, стандарт ISO/IEC 10646 также имеет две основные формы кодирования символов: UCS-2 (2 байта на символ, аналогично UTF-16) и UCS-4 (4 байта на символ, аналогично UTF-32). UCS значит универсальный многооктетный (многобайтовый) кодированный набор символов (англ. universal multiple-octet coded character set ). UCS-2 можно считать подмножеством UTF-16 (UTF-16 без суррогатных пар), а UCS-4 является синонимом для UTF-32.

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

Юникод имеет несколько форм представления (англ. Unicode transformation format, UTF ): UTF-8 , UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). Была разработана также форма представления UTF-7 для передачи по семибитным каналам, но из-за несовместимости с ASCII она не получила распространения и не включена в стандарт. 1 апреля 2005 года были предложены две шуточные формы представления: UTF-9 и UTF-18 (RFC 4042).

Unicode UTF-8: 0x00000000 - 0x0000007F: 0xxxxxxx 0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx 0x00000800 - 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx 0x00010000 - 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

Теоретически возможны, но не включены в стандарт также:

0x00200000 - 0x03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0x04000000 - 0x7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

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

Порядок байтов

В потоке данных UTF-16 старший байт может записываться либо перед младшим (англ. UTF-16 big-endian ), либо после младшего (англ. UTF-16 little-endian ). Аналогично существует два варианта четырёхбайтной кодировки - UTF-32BE и UTF-32LE.

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

UTF-8 EF BB BF UTF-16BE FE FF UTF-16LE FF FE UTF-32BE 00 00 FE FF UTF-32LE FF FE 00 00

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

Файлы в кодировках UTF-16 и UTF-32, не содержащие BOM, должны иметь порядок байтов big-endian (unicode.org).

Юникод и традиционные кодировки

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

Кроме того, многие форматы данных позволяют вставлять любые символы Юникода, даже если документ записан в старой 8-битной кодировке. Например, в HTML можно использовать коды с амперсандом .

Реализации

Большинство современных операционных систем в той или иной степени обеспечивают поддержку Юникода.

Одной из первых успешных коммерческих реализаций Юникода стала среда программирования Java . В ней принципиально отказались от 8-битного представления символов в пользу 16-битного. Сейчас большинство языков программирования поддерживают строки Юникода, хотя их представление может различаться в зависимости от реализации.

Методы ввода

Консоль GNU/Linux также допускает ввод символа Юникода по его коду - для этого десятичный код символа нужно ввести цифрами расширенного блока клавиатуры при зажатой клавише Alt. Можно вводить символы и по их шестнадцатеричному коду: для этого нужно зажать клавишу AltGr, и для ввода цифр A-F использовать клавиши расширенного блока клавиатуры от NumLock до Enter (по часовой стрелке). Поддерживается также и ввод в соответствии с ISO 14755. Для того чтобы перечисленные способы могли работать, нужно включить в консоли режим Юникода вызовом unicode_start (1) и выбрать подходящий шрифт вызовом setfont (8).

Написание «Юникод» уже твёрдо вошло в русскоязычные тексты. Согласно «Яндексу », частота использования этого слова примерно в 11 раз превышает «Уникод» . В Википедии используется более распространённый вариант.

На сайте Консорциума есть специальная страница, где рассматриваются проблемы передачи слова «Unicode» в различных языках и системах письма. Для русской кириллицы указан вариант «Юникод» .

Формы, принятые иностранными организациями для русской передачи слова «Unicode», являются рекомендательными.

См. также

  • Проект:Внесение символов алфавитов народов России в Юникод

Примечания

  1. Unicode Transcriptions (англ.) . Архивировано из первоисточника 22 августа 2011. Проверено 10 мая 2010.
  2. Уникод в словаре Paratype
  3. The Unicode® Standard: A Technical Introduction . Архивировано
  4. History of Unicode Release and Publication Dates . Архивировано из первоисточника 22 августа 2011. Проверено 4 июля 2010.
  5. The Unicode Consortium . Архивировано из первоисточника 22 августа 2011. Проверено 4 июля 2010.
  6. Foreword . Архивировано из первоисточника 22 августа 2011. Проверено 4 июля 2010.
  7. General Structure . Архивировано из первоисточника 22 августа 2011. Проверено 5 июля 2010.
  8. European Alphabetic Scripts . Архивировано из первоисточника 22 августа 2011. Проверено 4 июля 2010.
  9. Unicode 88 . Архивировано из первоисточника 22 августа 2011. Проверено 8 июля 2010.
  10. Unicode and Microsoft Windows NT (англ.) . Microsoft Support . Архивировано
  11. Unicode используется почти на 50% веб-сайтов (рус.) . Архивировано из первоисточника 22 августа 2011.
  12. Roadmap to the TIP (Tertiary Ideographic Plane)
  13. http://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt (англ.)
  14. Регистр в Unicode - это непросто
  15. В большинстве шрифтов для ПК реализованы «прописные» (маюскульные) моноширинные цифры.
  16. В некоторых случаях документ (не простой текст) в Юникоде может занимать существенно меньше места, чем документ в однобайтовой кодировке. Например, если некая веб-страница содержит примерно поровну русского и греческого текста, то в однобайтовой кодировке придётся либо русские, либо греческие буквы записывать, используя возможности формата документов, в виде кодов с амперсандом, которые занимают 6-7 байт на символ (при использовании десятичных кодов), т. е. в среднем на букву придётся 3,5-4 байта, в то время как UTF-8 занимает только 2 байта на греческую или русскую букву.
  17. Один из файлов шрифтов Arial Unicode имеет размер 24 мегабайта; существует Times New Roman размером 120 мегабайт, он содержит количество символов, близкое к 65536.
  18. Даже для самого современного и дорогого мобильного телефона затруднительно выделить 120 Мбайт памяти для полного Юникод-шрифта. На практике использование полных шрифтов требуется редко.
  19. 350 тыс. страниц «Юникод » против 31 тыс. страниц «Уникод ».

Ссылки

  • Официальный сайт Консорциума Юникода (англ.)
  • Unicode в каталоге ссылок Open Directory Project (dmoz). (англ.)
  • Что такое Unicode? (рус.)
  • Последняя версия


© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows