Кодировка символов

Материал из ПИЭ.Wiki

Перейти к: навигация, поиск

Разработка «языка» для общения человека и персонального компьютера была одной из самых сложных задач в те далекие годы, когда создавались первые ЭВМ. И решена она была настолько успешно, что даже первая из придуманных систем кодировки символа – ASCII активно и вполне эффективно (хотя и в модернизированном виде) используется до сих пор.

Содержание

Что такое кодировка

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

Как кодируется текст

Множество символов, используемых при записи текста, в компьютерной терминологии именуется алфавитом; количество символов в алфавите принято называть его мощностью. Для представления текстовой информации в компьютере чаще всего используется алфавит мощностью 256 символов. Один его символ несет 8 бит информации, следовательно, двоичный код каждого символа занимает 1 байт памяти компьютера. Все символы такого алфавита пронумерованы от 0 до 255, и каждому номеру соответствует 8-разрядный двоичный код, который является порядковым номером символа в двоичной системе счисления – от 00000000 до 11111111. Стандартными в любой кодовой таблице являются только первые 128 символов с номерами от нуля (двоичный код 00000000) до 127 (01111111). В их число входят строчные и прописные буквы латинского алфавита, цифры, знаки препинания, скобки и т.п. Остальные 128 кодов, начиная со 128 (двоичный код 10000000) и заканчивая 255 (11111111), используются для кодировки букв национальных алфавитов, служебных и научных символов.

Виды кодировок

Самой известной таблицей кодировки является код ASCII (Американский стандартный код для обмена информацией). Первоначально он был разработан для передачи текстов по телеграфу, причем в то время он был 7-битовым, то есть для кодирования символов английского языка, служебных и управляющих символов использовались только 128 7-битовых комбинаций. При этом первые 32 комбинации (кода) служили для кодирования управляющих сигналов (начало текста, конец строки, перевод каретки, звонок, конец текста и т.д.). При разработке первых компьютеров фирмы IBM этот код был использован для представления символов в компьютере. Поскольку в исходном коде ASCII было всего 128 символов, для их кодирования хватило значений байта, у которых 8-ой бит равен 0. Значения байта с 8-ым битом, равным 1, стали использовать для представления символов псевдографики, математических знаков и некоторых символов из языков, отличных от английского (греческого, немецких умляутов, французских диакритических знаков и т.п.). Когда стали приспосабливать компьютеры для других стран и языков, места для новых символов уже не стало хватать. Для того, чтобы полноценно поддерживать помимо английского и другие языки, фирма IBM ввела в употребление несколько кодовых таблиц, ориентированных на конкретные страны. Так для скандинавских стран была предложена таблица 865 (Nordic), для арабских стран - таблица 864 (Arabic), для Израиля - таблица 862 (Israel) и так далее. В этих таблицах часть кодов из второй половины кодовой таблицы использовалась для представления символов национальных алфавитов (за счет исключения некоторых символов псевдографики). С русским языком ситуация развивалась особым образом. Очевидно, что замену символов во второй половине кодовой таблицы можно произвести разными способами. Вот и появились для русского языка несколько разных таблиц кодировки символов кириллицы: KOI8-R, IBM-866, CP-1251, ISO-8551-5. Все они одинаково изображают символы первой половины таблицы (от 0 до 127) и различаются представлением символов русского алфавита и псевдографики. Для таких же языков, как китайский или японский, вообще 256 символов недостаточно. Кроме того, всегда существует проблема вывода или сохранения в одном файле одновременно текстов на разных языках (например, при цитировании). Поэтому была разработана универсальная кодовая таблица UNICODE, содержащая символы, применяемые в языках всех народов мира, а также различные служебные и вспомогательные символы (знаки препинания, математические и технические символы, стрелки, диакритические знаки и т.д.). Очевидно, что одного байта недостаточно для кодирования такого большого множества символов. Поэтому в UNICODE используются 16-битовые (2-байтовые) коды, что позволяет представить 65 536 символов. К настоящему времени задействовано около 49 000 кодов (последнее значительное изменение - введение символа валюты EURO в сентябре 1998 г.). Для совместимости с предыдущими кодировками первые 256 кодов совпадают со стандартом ASCII. В стандарте UNICODE кроме определенного двоичного кода (эти коды принято обозначать буквой U, после которой следуют знак + и собственно код в шестнадцатиричном представлении) каждому символу присвоено определенное имя. Ещё одним компонентом стандарта UNICODE являются алгоритмы для взаимнооднозначного преобразования кодов UNICODE в последовательности байтов переменной длины. Необходимость таких алгоритмов обусловлена тем, что не все приложения умеют работать с UNICODE. Некоторые приложения понимают только 7-битовые ASCII-коды, другие приложения - 8-битовые ASCII-коды. Такие приложения используют для представления символов, не поместившихся, соответственно, в 128-символьный или 256-символьный набор, так называемые расширенные ASCII-коды, когда символы кодируются цепочками байтов переменной длины. Алгоритм UTF-7 служит для обратимого преобразования кодов UNICODE в расширенные 7-битовые ASCII-коды, а UTF-8 - для обратимого преобразования кодов UNICODE в расширенные 8-битовые ASCII-коды. Отметим, что и ASCII, и UNICODE, и другие стандарты кодировки символов не определяют изображения символов, а только состав набора символов и способ его представления в компьютере. Кроме того (что, может быть, не сразу очевидно), очень важен порядок перечисления символов в наборе, так как он влияет самым существенным образом на алгоритмы сортировки. Именно таблицу соответствия символов из какого-то определенного набора (скажем, символов, применяемых для представления информации на английском языке, или на разных языках, как в случае с UNICODE) и обозначают термином таблица кодировки символов или charset. Каждая стандартная кодировка имеет имя, например, KOI8-R, ISO_8859-1, ASCII. К сожалению, стандарта на имена кодировок не существует.

Распространенные кодировки

           •	ISO 646 
                   o   ASCII 
           •	EBCDIC 
           •	ISO 8859: 
                   o   ISO 8859-1  -   ISO 8859-11, ISO 8859-13, ISO 8859-14, ISO 8859-15 
                   o   CP437, CP737, CP850, CP852, CP855, CP857, CP858, CP860, CP861, CP863, CP865, CP866, CP869 
           •	Кодировки Microsoft Windows: 
                   o   Windows-1250 для языков Центральной Европы, которые используют латинское написание букв  
                   o   Windows-1251 для кириллических алфавитов 
                   o   Windows-1252 для западных языков 
                   o   Windows-1253 для греческого языка 
                   o   Windows-1254 для турецкого языка 
                   o   Windows-1255 для иврита 
                   o   Windows-1256 для арабского языка 
                   o   Windows-1257 для балтийских языков 
                   o   Windows-1258 для вьетнамского языка 
          •	MacRoman, MacCyrillic 
          •	КОИ8 (KOI8-R, KOI8-U…), КОИ-7 
          •	Болгарская кодировка 
          •	ISCII 
          •	VISCII 
          •	Big5 (наиболее знаменитый вариант Microsoft CP950) 
                   o   HKSCS 
          •	Guobiao 
                   o   GB2312 
                   o   GBK (Microsoft CP936) 
                   o   GB18030 
          •	Shift JIS для японского языка (Microsoft CP932) 
          •	EUC-KR для корейского языка (Microsoft CP949) 
          •	ISO-2022 и EUC для китайской письменности 
          •	Кодировки UTF-8 и UTF-16 набора символов Юникод 

Литература

  1. Романова Ю.Д. Информатика и информационные технологии : учебное пособие/Ю.Д. Романова, И.Г. Лесничая, В.И. Шестаков, И.В. Миссинг, П.А. Музычкин; под ред. Ю.Д. Романовой. - 3-е изд.,перераб. и доп. - М.:Эксмо, 2008.-592с.-(Высшее экономическое образование). ISBN 978-5-699-22955-0

[1] [2]

Просмотры
Инструменты

Besucherzahler russian mail order brides
счетчик посещений
Rambler's Top100
Лингафонные кабинеты  Интерактивные доски  Интерактивная приставка Mimio Teach