В кодировке ascii каждый символ кодируется 8: В кодировке ASCII каждый символ кодируется 8 битами. Укажите информационный объём сообщения A FRIEND IN NEED IS A FRIEND
ОГЭ по информатике 2020 — Задание 1 (Бомбим экзамен!)
Наконец-то выходит стартовый видеоурок по новой версии ОГЭ по информатике — 2020! Сегодня разберём, как решать первое задание из ОГЭ по информатике 2020.
Для начала необходимо выучить таблицу перевода различных единиц информации. Всего необходимо запомнить два числа 8 и 1024 — и таблица автоматически запоминается.
Самой маленькой единицей информации является 1 бит (и имеет самое маленькое название — три буквы). Приставка «Кило» обычно обозначает 1000, но у нас 1 Кбайт = 1024 байт.
Теперь давайте посмотрим на задание номер 1 в ОГЭ по информатике 2020!
Задача:
В кодировке КОИ-8 каждый символ кодируется 8 битами.
Вася написал текст (в нём нет лишних пробелов):
«Лена, Иртыш, Обь, Колыма, Днепр, Колыма – реки России.»
Ученик добавил в список название ещё одной реки – Волга. При этом он добавил в текст необходимую запятую и пробел.
На сколько байт при этом увеличился размер нового предложения в данной кодировке? В ответе укажите только одно число – количество байт.
Решение:
В первой задаче ОГЭ по информатике 2020 обычно есть текст в кавычках, который написан учеником. И в этом тексте идёт некоторое перечисление. И в это перечисление добавил ученик слово «Волга», плюс запятую и пробел. Итого ученик добавил 7 символов.
Каждый символ кодируется 8-ю битами (т.е. 1 байтом).
Итого 7 сим * 1 байт = 7 байт добавил ученик. Значит и предложение увеличилось на 7 байт.
Ответ: 7
Разберём ещё один пример из первого номера из ОГЭ по информатике 2020.
Задача:
В одной из кодировок Unicode каждый символ кодируется 16 битами. Серьгуша написал текст (в нём нет лишних пробелов):
«Меркурий, Венера, Земля, Марс, Юпитер, Сатурн— планеты солнечной системы».
Ученик вычеркнул из списка название одной планеты. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 12 байт меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название планеты.
Решение:
Задача похоже на предыдущую, но теперь мы не добавляем слово в перечисление, а вычеркиваем. Заодно, как и в прошлый раз, нужно убрать лишнюю запятую и лишний пробел.
Каждый символ кодируется 16 битами т.е. 2 байтами. После вычёркивания, наше предложение стало меньше на 12 байт. Если мы разделим 12 байт на размер одного символа (2 байта), то мы найдём количество вычеркнутых символов. 12 байт : 2 байта = 6 символов — вычеркнул ученик. Но в эти символы входит и пробел, и запятая. Если их не учитывать, то на наше слово останется 4 символов. Если мы посмотрим на наше перечисление, то обнаружим, что 4 символа имеет слово только «Марс».
Ответ: Марс
Задача:
В кодировке UTF-32 каждый символ кодируется 32 битами. Даша написала текст (в нём нет лишних пробелов):
«комары, мухи, бабочки— насекомые».
Ученица вычеркнула из списка одно название насекомых. Заодно она вычеркнула ставшие лишними запятые и пробелы — два пробела не должны идти подряд.
При этом размер нового предложения в данной кодировке оказался на 32 байта меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название насекомых.
Решение:
Каждый символ кодируется 32 битами т.е. 4 байтами. После вычёркивания, наше предложение стало меньше на 32 байт. Если мы разделим 32 байт на размер одного байта (4 байта), то мы найдём количество вычеркнутых символов. 32 байт : 4 байта = 8 символов — вычеркнул ученик. Но в эти символы входит и пробел, и запятая. Если их не учитывать, то на наше слово останется 6 символа. Если мы посмотрим на наше перечисление, то обнаружим, что 6 символа имеет слово только «комары».
Ответ: комары
На этом всё! Разбомбим ОГЭ по информатике 2020!
.
7 класс. Урок № 28. Оценка количественных параметров текстовых документов
Выполнить до 15:00 23 апреля 2020 г.
Представление текстовой информации в памяти компьютера
Текст состоит из символов — букв, цифр, знаков препинания и т. д., которые человек различает по начертанию. Компьютер различает вводимые символы по их двоичному коду. Вы нажимаете на клавиатуре символьную клавишу, и в компьютер поступает определённая последовательность электрических импульсов разной силы, которую можно представить в виде цепочки из восьми нулей и единиц (двоичного кода).
Мы уже говорили о том, что разрядность двоичного кода i и количество возможных кодовых комбинаций N связаны соотношением: 2′ = N. Восьмиразрядный двоичный код позволяет получить 256 различных кодовых комбинаций: 28 = 256.
С помощью такого количества кодовых комбинаций можно закодировать все символы, расположенные на клавиатуре компьютера, — строчные и прописные русские и латинские буквы, цифры, знаки препинания, знаки арифметических операций, скобки и т. д., а также ряд управляющих символов, без которых невозможно создание текстового документа (удаление предыдущего символа, перевод строки, пробел и др.).Соответствие между изображениями символов и кодами символов устанавливается с помощью кодовых таблиц.
Все кодовые таблицы, используемые в любых компьютерах и любых операционных системах, подчиняются международным стандартам кодирования символов.
Кодовая таблица содержит коды для 256 различных символов, пронумерованных от О до 255. Первые 128 кодов во всех кодовых таблицах соответствуют одним и тем же символам:
• коды с номерами от 0 до 32 соответствуют управляющим символам;
• коды с номерами от 33 до 127 соответствуют изображаемым символам — латинским буквам, знакам препинания, цифрам, знакам арифметических операций и т. д.
Эти коды были разработаны в США и получили название ASCII (American St and art Code for Information Interchange — Американский стандартный код для обмена информацией).
В таблице 4.1 представлен фрагмент кодировки ASCII.
Коды с номерами от 128 до 255 используются для кодирования букв национального алфавита, символов национальной валюты и т. п. Поэтому в кодовых таблицах для разных языков одному и тому же коду соответствуют разные символы. Более того, для многих языков
существует несколько вариантов кодовых таблиц (например, для русского языка их около десятка!).
В таблице 4.2 представлены десятичные и двоичные коды нескольких букв русского алфавита в двух различных кодировках.
Например, последовательности двоичных кодов
11010010 11000101 11001010 11010001 11010010
в кодировке Windows будет соответствовать слово «ТЕКСТ», а в кодировке КОИ-8 — бессмысленный набор символов «рейяр».
Как правило, пользователь не должен заботиться о перекодировании текстовых документов, так как это делают специальные программы-конверторы, встроенные в операционную систему и приложения.
Восьмиразрядные кодировки обладают одним серьёзным ограничением: количество различных кодов символов в этих кодировках недостаточно велико, чтобы можно было одновременно пользоваться более чем двумя языками. Для устранения этого ограничения был разработан новый стандарт кодирования символов, получивший название Unicode. В Unicode каждый символ кодируется шестнадцатиразрядным двоичным кодом. Такое количество разрядов позволяет закодировать 65 536 различных символов:
216 = 65 536.
Первые 128 символов в Unicode совпадают с таблицей ASCII; далее размещены алфавиты всех современных языков, а также все математические и иные научные символьные обозначения. С каждым годом Unicode получает всё более широкое распространение.
В Единой коллекции цифровых образовательных ресурсов (http://sc.edu.ru) размещены анимации «Клавиатура ПЭВМ: принципы работы; устройство клавиши» (134923), «Клавиатура ПЭВМ: принципы работы; сканирование клавиш» (135019), «Клавиатура ПЭВМ: формирование кода введенного символа» (134868), которые помогут вам наглядно увидеть, как формируется код символа, введённого с клавиатуры.
В зависимости от разрядности используемой кодировки информационный вес символа текста, создаваемого на компьютере, может быть равен: 8 битов (1 байт) — восьмиразрядная кодировка; 16 битов (2 байта) — шестнадцатиразрядная кодировка. |
Информационный объём фрагмента текста
Вам известно, что информационный объём сообщения / равен произведению количества символов К в сообщении на информационный вес символа
алфавита i: I = К • L.
Информационным объёмом фрагмента текста будем называть количество битов, байтов или производных единиц (килобайтов, мегабайтов и т. д.), необходимых для записи этого фрагмента заранее оговорённым способом двоичного кодирования.
Задача 1. Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объём следующего высказывания Жан-Жака Руссо:
Тысячи путей ведут к заблуждению, к истине — только один.
Решение. В данном тексте 57 символов (с учётом знаков препинания и пробелов). Каждый символ кодируется одним байтом. Следовательно, информационный объём всего текста — 57 байтов.
Ответ: 57 байтов.
Задача 2. В кодировке Unicode на каждый символ отводится два байта. Определите информационный объём текста из 24 символов в этой кодировке.
Решение. I = 24 • 2 = 48 байтов.
Ответ: 48 байтов.
Задача 3. Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке, первоначально записанного в 8-битовом коде, в 16-битовую кодировку Unicode. При этом информационное сообщение увеличилось на 2048 байтов. Каков был информационный объём сообщения до перекодировки?
Решение. Информационный вес каждого символа в 16-битовой кодировке в два раза больше информационного веса символа в 8-битовой кодировке. Поэтому при перекодировании исходного блока информации из 8-битовой кодировки в 16-битовую его информационный объём должен был увеличиться вдвое, другими словами, на величину, равную исходному информационному объёму. Следовательно, информационный объём сообщения до перекодировки составлял 2048 байтов — 2 Кб.
Ответ: 2 Кб.
Задача 4. Выразите в мегабайтах объём текстовой информации в «Современном словаре иностранных слов» из 740 страниц, если на одной странице размещается в среднем 60 строк по 80 символов (включая пробелы). Считайте, что при записи использовался алфавит мощностью 256 символов.
Решение. Информационный вес символа алфавита мощностью 256 равен восьми битам (одному байту). Количество символов во всём словаре равно 740 80 60 = 3 552 ООО. Следовательно, объём этого текста в байтах равен 3 552 ООО байтов = 3 468,75 Кбайт, примерно 3,39 Мбайт.
Ответ: 3,39 Мбайт.
Задания
Задание 1. Считая, что каждый символ кодируется двумя байтами, определите, чему равен информационный объем следующего предложения:
До середины XIX века территория нынешнего Хабаровска, в соответствии с Нерчинским договором, находилась на нейтральной территории, не разграниченной между Цинской империей и Россией.
Задание 2. Считая, что каждый символ кодируется одним байтом, определите, чему равен информационный объем следующего текста:
28 мая (16 мая по старому стилю) 1858 года был подписан договор(с российской стороны переговоры вел генерал-губернатор Восточной Сибири, граф Н.Н. Муравьев-Амурский), в соответствии с которым весь левый берег Амура переходил во владение Российской империи, правый берег до реки Уссури переходил во владение Китая, а Уссурийский край от впадения Уссури в Амур до моря был объявлен пребывающим «в общем владении» до определения границ.
Задание 3. Сообщение, информационный объем которого равен 10 Кбайт, занимает 8 страниц по 32 строки, в каждой из которых записано по 60 символов. Сколько символов в алфавите языка, на котором записано это сообщение?
Делаем фото тетради, 1 стр на 1 фото, вертикально.
Фото с выполненным заданием прикрепляем в форму ниже к этой записи. Ниже, пишем Фамилию Имя, прикладываем файл и отправляем. Регистрироваться не обязательно. Можно загружать несколько файлов одновременно.
Отправить задания
Блог учителя информатики: Кодирование текстовой информации
Сегодня я хочу поговорить о кодировках. Зачем вообще нужны кодирование текстов и почему это так важно? Какие кодировки текста существуют и какие из них следует использовать?
У вас встречалась ситуация, когда вы получаете электронное письмо, но
не можете его прочитать – вместо текста идут какие-то непонятные знаки?
То же самое случается и в интернете – открываете страницу, а разобрать
ничего не возможно. Причем заметьте, подобное происходит именно с
русским текстом, с английским подобные проблемы маловероятны. Причина
проблем – открытие файла в неверной кодировке.
Соответствие между набором символов и набором числовых значений называется кодировкой символа.
В процессе вывода символа на экран производится обратная операция –
декодирование, т.е. преобразование кода символа в изображение.
Присвоенный каждому символу конкретный числовой код фиксируется в
кодовых таблицах. Причем, в разных таблицах одному и тому же символу
могут соответствовать разные числовые коды. Обычно перекодированием
текста занимаются специальные программы-конвертеры, они встроены в
большинство приложений.
Зачем нужны кодировки
Символы на экране вашего компьютера формируются на основе двух
вещей — наборов векторных форм (представлений) всевозможных символов
(они находятся в файлах со шрифтами, которые установлены на вашем
компьютере) и кода, который позволяет выдернуть из этого набора
векторных форм (файла шрифта) именно тот символ, который нужно будет
вставить в нужное место.
Кодировка ASCII
Для начала немного посчитаем. Помните, что такое бит? Это минимальный
носитель информации, ноль или один. А байт содержит восемь битов.
Сколько может быть комбинаций из нулей и единиц длины 8? Ответ –
2*2*2*2*2*2*2*2=256. Именно столько значений может принимать один байт.
Иногда еще байт называют символом – потому что как раз для кодировки
символа и стали использовать один байт. Даже меньше, изначально была
придумана кодировка ASCII, которая использовала 7 битов – в первые 128
значений можно было вольготно разместить английский алфавит в обоих
регистрах, диакритические знаки, цифры и набор спец-символов. И эта
кодировка действительно стала универсальной, поэтому англоязычные
пользователи крайне редко могут испытывать проблемы с кодировкой.
Кодировка ASCII (American Standard Code for
Information Interchange, которая по русски обычно произносится как
«аски») описывает первые 128 символов из наиболее часто используемых
англоязычными пользователями — латинские буквы, арабские цифры и знаки
препинания. Так же еще в эти 128 символов кодировки ASCII попадали
некоторые служебные символы, навроде скобок, решеток, звездочек и т.п.
Именно эти 128 символов из первоначального вариант ASCII стали
стандартом, и в любой другой кодировке текста вы их обязательно
встретите и стоять они будут именно в таком порядке. Но дело в том, что с
помощью одного байта информации можно закодировать не 128, а целых 256
различных значений (двойка в степени восемь равняется 256), поэтому
вслед за базовой версией ASCII появился целый ряд расширенных кодировок ASCII, в которых можно было кроме 128 основных символов закодировать еще и символы национальной кодировки (например, русской).
Кодировка КОИ-8R
Принцип работы кодировки KOI-8R такой— каждый символ текста кодируется одним единственным байтом.
Среди особенностей кодировки KOI-8R можно отметить то, что русские
буквы в ее таблице идут не в алфавитном порядке. В кодировке KOI-8R
русские буквы расположены в тех же ячейках таблицы, что и созвучные им
буквы латинского алфавита из первой части таблицы ASCII. Это было
сделано для удобства перехода с русских символов на латинские путем
отбрасывания всего одного бита (два в седьмой степени или 128).
Кодировка Unicode
Перейдем к кириллице. Для нее стали использовать вторую половину
кодовой таблицы – символы 129-256. Однако так сложилось, что различные
кодировки были изобретены независимо – одни изобретатели располагали
буквы, стремясь к соответствию расположения на пишущих машинках, другие –
к тому, чтобы одинаково выглядящие кириллические и латинские буквы
находились на расстоянии в 128 (что приводило к тому, что даже
программы, не умевшие работать со второй половиной таблицы, более-менее
читаемо отображали русский текст). Были и другие идеи; появление Windows
также принесло свою кодировку. Но главное, такая кодировка
принципиально не могла стать универсальной, так как если латиница была
нужна везде (хотя бы для командной строки), то кириллица была лишь одним
из национальных алфавитов.
У единой, потенциально универсальной кодировки, существует название:
Unicode, и придумана она была уже давно, в 1991 году. В Юникоде
используется 6 байтов для отображения символа.
Например, в операционной системе Windows вы можете пройти по пути Пуск — Программы — Стандартные — Служебные — Таблица символов. В результате откроется таблица с векторными формами всех установленных у вас в системе шрифтов. Если вы выберите в Дополнительных параметрах
набор символов Юникод, то сможете увидеть для каждого шрифта в
отдельности весь ассортимент входящих в него символов. Кстати, щелкнув
по любому из этих символов вы сможете увидеть его двухбайтовый код в
кодировке UTF 16, состоящий из четырех шестнадцатеричных цифр.
Кодировки кириллицы
Как правило, для хранения кода символа используется 1 байт (8 битов).
Поэтому коды символов могут принимать значение от 0 до 255. Такие кодировки называют однобайтными.
Они позволяют использовать 256 символов (2 в восьмой степени равно
256). Таблица однобайтных кодов символов ASCII состоит из двух частей.
Первая часть таблицы ASCII-кодов (от 0 до 127) стандартна для всех
компьютеров и содержит:
- коды управляющих символов,
- коды цифр, арифметических операций, знаков препинания,
- некоторые специальные символы,
- коды больших и маленьких латинских букв.
Вторая часть таблицы (коды от 128 до 255) бывает различной в различных компьютерах. Она содержит:
- коды букв национального алфавита,
- коды некоторых математических символов,
- коды символов псевдографики.
Для русских букв используются такие различные кодовые таблицы: КОИ-8, ISO, Mac, CP1251, CP866.
В последнее время широкое распространение получил новый международный стандарт Unicode.
В Unicode отводится по 2 байта (16 битов) для кодирования каждого символа.
Поэтому с его помощью можно закодировать 65536 различных символов (2 в
шестнадцатой степени равно 65536). Коды символов могут принимать
значение от 0 до 65535.
Примеры решения задач
1. С помощью кодировки Unicode закодирована следующая фраза: Я хочу поступить в университет!
Оцените информационный объем этой фразы.
Решение:
В данной фразе содержится 31 символ (включая пробелы и знак
препинания). Поскольку в кодировке Unicode каждому символу отводится 2
байта памяти, для всей фразы понадобится 31*2 = 62 байта или 31*2*8 =
496 битов.
2. Статья, набранная на компьютере, содержит 8 страниц, на каждой
странице 40 строк, в каждой строке 64 символа. В одном из представлений
Unicode каждый символ кодируется 16 битами. Определите информационный
объем статьи в этом варианте Unicode. Выберите верный ответ из
предложенных: а) 320 байт, б) 35 Кбайт , в) 640 байт, г) 40 Кбайт.
Определим количество символов: 8*40*64 = 20480. Поскольку в кодировке
Unicode каждому символу отводится 16 битов памяти, для всей фразы
понадобится 20480*16 = 327680 битов.
Переведем полученное значение в байты. Т.к. 8 бит = 1 байт, то 327680 : 8 = 40960 байт
Теперь в Кбайты. Т.к. 1024 байт = 1 Кбайт, то 40960 : 1024 = 40 Кбайт.
Из предложенных вариантов подходит вариант г) 40 Кбайт.
Решите самостоятельно
- В кодировке КОИ-8 каждый символ кодируется 1 байтом. Определите
информационный объем сообщения из 20 символов в этой кодировке. Варианты
ответов: а) 20 бит, б) 80 бит, в) 160 бит, г) 320 бит. - В кодировке Unicode на каждый символ отводится 2 байта. Определите
информационный объем слова из 24 символов в этой кодировке. Найдите
верный ответ: а) 384 бита, б) 192 бита, в) 256 бит, г) 48 бит.
Сайт: http://school.dtv.su/obo-mne/
Кодировки символов: основные понятия
Кодировки символов: основные понятия
В этой статье вводится ряд основных понятий, необходимых для понимания других статей, посвященных символам и кодировкам символов.
Unicode — это универсальный набор символов, т.е. стандарт, который определяет в одном месте все символы
необходим для написания большинства живых языков, используемых на компьютерах. Он стремится быть и в значительной степени уже является надмножеством всех других кодированных наборов символов.
Текст на компьютере или в Интернете состоит из символов. Символы представляют буквы алфавита, знаки препинания или другие символы.
В прошлом разные организации собирали разные наборы символов и создавали для них кодировки — один набор может охватывать только латинские западноевропейские языки (за исключением стран ЕС, таких как Болгария или Греция), другой может охватывать конкретный дальневосточный язык ( например, японский), другие могут быть одним из множества наборов, разработанных довольно специальным образом для представления другого языка где-нибудь в мире.
К сожалению, вы не можете гарантировать, что ваше приложение будет поддерживать все кодировки, или что данная кодировка будет поддерживать все ваши потребности для представления данного языка. Кроме того, обычно невозможно комбинировать разные кодировки на одной и той же веб-странице или в базе данных, поэтому обычно очень сложно поддерживать многоязычные страницы с использованием «устаревших» подходов к кодированию.
Консорциум Unicode предоставляет большой единый набор символов, который направлен на включение всех символов, необходимых для любой системы письма в мире, включая древние письменности (такие как клинопись, готические и египетские иероглифы).В настоящее время он является фундаментальным для архитектуры Интернета и операционных систем и поддерживается всеми основными веб-браузерами и приложениями. Стандарт Unicode также описывает свойства и алгоритмы работы с символами.
Этот подход значительно упрощает работу с многоязычными страницами или системами и обеспечивает гораздо лучшее покрытие ваших потребностей, чем большинство традиционных систем кодирования.
Ниже показаны блоки сценария Unicode начиная с версии 5.2 Unicode:
Юникод
Считается, что первые 65 536 позиций кодовой точки в наборе символов Unicode составляют базовую многоязычную плоскость (BMP) .BMP включает в себя большинство наиболее часто используемых символов.
Число 65 536 равно 2 в степени 16. Другими словами, максимальное количество битовых перестановок, которые вы можете получить в двух байтах.
Набор символов Unicode также содержит пространство для около миллиона дополнительных позиций кодовой точки. Символы в этом последнем диапазоне называются дополнительными символами .
Базовая многоязычная плоскость (BMP) Дополнительная плоскость специального назначения Плоскости частного использования SIP (дополнительная идеографическая плоскость) SMP (дополнительная многоязычная плоскость) 65 536 кодовых точек
Для получения дополнительной информации о Unicode см. Домашнюю страницу Unicode или прочтите учебник An Introduction to Writing Systems & Unicode .
Важно четко различать концепции набора символов и кодировки символов.
Набор символов или репертуар включает набор символов, которые можно использовать для определенной цели — будь то те, которые требуются для поддержки
Западноевропейские языки в компьютерах, или те, которые китайский ребенок будет изучать в школе в третьем классе (никакого отношения к компьютерам).
Набор кодированных символов — это набор символов, каждому из которых присвоен уникальный номер.
персонаж.Единицы набора кодированных символов известны как кодовых точек . Значение кодовой точки представляет позицию символа в кодированном наборе символов. Например, кодовая точка для буквы á в наборе кодированных символов Unicode — 225 в десятичной системе счисления или 0xE1 в шестнадцатеричной системе счисления. (Обратите внимание, что шестнадцатеричная запись
обычно используется для обозначения кодовых точек и будет использоваться здесь.) Кодовая точка Unicode может иметь значение от 0x0000 до 0x10FFFF.
Наборы кодированных символов иногда называют кодовыми страницами.
Кодировка символов отражает способ сопоставления кодированного набора символов с байтами для обработки в
компьютер. На рисунке ниже показано, как символы и кодовые точки в сценарии Tifinagh (Berber) отображаются в последовательности байтов в памяти с использованием в кодировке UTF-8 (которую мы описываем в этом разделе). Значения кодовой точки для каждого символа перечислены непосредственно под глифом (т. Е. Визуальным представлением) этого символа в верхней части диаграммы.Стрелки показывают, как они отображаются в последовательности байтов, где каждый байт представлен двузначным шестнадцатеричным числом. Обратите внимание, как точки кода Tifinagh соответствуют трем байтам, а восклицательный знак — одному байту.
Кодировка символов
В этом объяснении замалчивается некоторая подробная номенклатура, относящаяся к кодированию. Более подробную информацию можно найти в Unicode Technical
Отчет № 17 .
Один набор символов, несколько кодировок.Многие стандарты кодирования символов, например стандарты серии ISO 8859, используют один байт для данного символа, а кодировка
прямое отображение на скалярную позицию символов в кодированном наборе символов. Например, буква A в наборе кодированных символов ISO 8859-1 находится на 65-й позиции символа (начиная с нуля) и кодируется для представления в компьютере с использованием
байт со значением 65. Для ISO 8859-1 это никогда не меняется.
Однако с Unicode все не так просто.Хотя код для буквы á в
Набор символов Unicode всегда равен 225 (в десятичной системе), в UTF-8 он представлен в компьютере двумя байтами. Другими словами, нет тривиального,
взаимно однозначное соответствие между значением набора кодированных символов и кодированным значением для этого символа.
Кроме того, в Unicode есть несколько способов кодирования одного и того же символа. Например, буква á может быть представлена двумя байтами в одной кодировке и четырьмя байтами в другой.Кодировка образует , который можно использовать с Unicode.
называются UTF-8, UTF-16 и UTF-32.
Кодировка символов
UTF-8 использует 1 байт для представления символов в наборе ASCII, два байта для символов в еще нескольких алфавитных блоках и три
байтов для остальной части BMP. Дополнительные символы занимают 4 байта.
UTF-16 использует 2 байта для любого символа в BMP и 4 байта для дополнительных символов.
UTF-32 использует 4 байта для всех символов.
В следующей таблице первая строка чисел представляет позицию символа в наборе кодированных символов Unicode. В
другие строки показывают байтовые значения, используемые для представления этого символа в определенной кодировке символов.
Кодовая точка | U + 0041 | U + 05D0 | U + 597D | U + 233B4 |
---|---|---|---|---|
UTF-8 | 41 | D7 90 | E5 A5 BD | F0 A3 8E B4 |
UTF-16 | 00 41 | 05 D0 | 59 7D | D8 4C DF B4 |
UTF-32 | 00 00 00 41 | 00 00 05 D0 | 00 00 59 7D | 00 02 33 B4 |
Для получения дополнительной информации о символах и кодировках см. Введение в наборы символов и кодировки или прочтите учебник Обработка кодировок символов в HTML и CSS и статью Выбор и применение кодировки символов .
Для XML и HTML (начиная с версии 4.0) набор символов документа определен как универсальный
Набор символов (UCS) в соответствии со стандартами ISO / IEC 10646 и Unicode. (Для простоты и в соответствии с общепринятой практикой мы будем ссылаться на
UCS здесь просто как Unicode.)
Это означает, что логическая модель, описывающая, как обрабатываются XML и HTML, описывается в терминах набора символов, определяемых
Юникод. (На практике это означает, что браузеры обычно конвертируют весь текст в Unicode внутренне.)
Обратите внимание, что это не означает, что все документы HTML и XML должны использовать кодировку Unicode! Однако это означает, что
документы могут содержать только символы, определенные Unicode. Для вашего документа может использоваться любая кодировка, если она правильно объявлена и представляет собой подмножество
репертуара Unicode.
Дополнительные сведения о наборе символов документа см. В статье Набор символов документа .
Хотя мы до сих пор использовали его без особых оговорок в этой статье, термин «символ» используется здесь абстрактно и несколько расплывчато для обозначения мельчайшего компонента письменного языка, имеющего семантическое значение.Однако термин «символ» часто используется для обозначения разных вещей в разных контекстах: он может по-разному относиться к визуальному, логическому или байтовому представлению данного фрагмента текста. Это делает термин слишком неточным для использования при указании алгоритмов, протоколов или форматов документов, если вы явно не определите, что вы под этим подразумеваете. Если термин «символ» используется в этих контекстах в техническом смысле, рекомендуется использовать его как синоним для кодовой точки (описанной выше).
Особенно важно помнить, что байты очень редко приравниваются к символам в Unicode, как показано в предыдущих примерах.
Однако, особенно в сложных сценариях, то, что пользователь воспринимает как наименьший компонент своего алфавита (и поэтому то, что мы назовем воспринимаемым пользователем символом ), на самом деле может быть последовательностью кодовых точек. Например, вьетнамская буква ề будет восприниматься как отдельная буква, даже если базовая последовательность кодовых точек — U + 0065 СТРОЧНАЯ ЛАТИНСКАЯ БУКВА E + U + 0302 КОМБИНИРОВАНИЕ CIRCUMFLEX ACCENT + U + 0300 COMBINING GRAVE ACCENT. Точно так же говорящий на бангласском языке может рассматривать кша (ক্ষ), которое состоит из последовательности U + 0995 БЕНГАЛИСКАЯ БУКВА KA + U + 09CD БЕНГАЛИЙСКИЙ ЗНАК ВИРАМА + U + 09B7 БЕНГАЛИСКАЯ ПИСЬМО SS,) как одну букву.
Часто важно принимать во внимание эти воспринимаемые пользователем символы. Например, некоторые комбинации кодовых точек обычно рассматриваются как единое целое для различных операций редактирования, таких как разрыв строки, перемещение курсора, выделение, удаление и т. Д. Обычно было бы проблематично, если бы пользовательский выбор случайно пропустил часть только что упомянутые буквы, или если разрыв строки отделяет базовый символ от следующих за ним комбинирующих символов.
Чтобы приблизить воспринимаемые пользователем единицы символов для таких операций, Unicode использует набор обобщенных правил для определения кластеров графем — последовательностей соседних кодовых точек, которые могут обрабатываться приложениями как единое целое.Отдельный буквенный символ, такой как e, является кластером графемы, но также это может быть любая комбинация основного символа и следующего за ним комбинирующего символа (ов), например ề, упомянутого выше.
Стандартное приложение
Unicode № 29: Сегментация текста фактически определяет два типа кластеров графем: расширенные кластеры графем и устаревшие кластеры графем. Здесь, когда мы говорим «кластер графема», мы имеем в виду первое. Последний использовать не рекомендуется.
воспринимаемый пользователем символ | |
---|---|
(возможное) разложение и границы кластера графемы |
В настоящее время, однако, существуют некоторые ограничения для правил кластера графем: например, правила разделяют воспринимаемый пользователем символ Bangla kshī (ক্ষী) на два соседних кластера графем, а не охватывают весь орфографический слог.Таким образом, приложения, которым необходимо работать с воспринимаемыми пользователем символами в Bangla, должны применять некоторую специфичную для сценария адаптацию правил кластера графем.
воспринимаемый пользователем символ | |
---|---|
декомпозиция и границы кластера графемы |
Подходящие единицы для операций редактирования иногда меняются в зависимости от того, что вы хотите сделать. Например, если вы переместите назад слово на хинди हूँ (U + 0939 ПИСЬМО ДЕВАНАГАРИ HA + U + 0942 ЗНАК ГЛАВНОЙ ДЕВАНАГАРИ UU + U + 0901 ЗНАК ДЕВАНАГАРИ CANDRABINDU), приложение обычно сначала удаляет каждый из двух объединяющих символов, а затем затем база.Однако, если вы выполняете «прямое удаление», когда курсор находится слева от слова, большинство приложений удалит весь кластер графемы за один раз.
CSS для обозначения неделимой текстовой единицы в данном контексте использует термин типографская символьная единица . Определение того, что составляет типографскую символьную единицу, зависит от применяемой операции. Таким образом, при работе с примером ề выше, при удалении вперед будет одна типографская символьная единица, а при обратном интервале — три.Кроме того, типографские символы охватывают такие случаи, как бенгальский ksha , чего в кластерах графем в настоящее время нет. Определение того, что составляет типографскую символьную единицу на данном языке и в контексте редактирования, передается приложению, а не прописано в правилах.
Шрифт представляет собой набор из знаков . В простом сценарии глиф — это визуальное представление кодовой точки. Глиф, используемый для представления кодовой точки, будет зависеть от используемого шрифта, а также от того, является ли шрифт полужирным, курсивом и т. Д.В случае смайликов используемые глифы зависят от платформы.
Фактически, для представления одной кодовой точки может использоваться более одного глифа, а несколько кодовых точек могут быть представлены одним глифом.
Emoji — еще один пример сложной взаимосвязи между кодовыми точками и глифами.
U + 1F46A СЕМЬЯ | |
U + 1F468 U + 200D U + 1F469 U + 200D U + 1F466 | |
U + 1F468 U + 200D U + 1F469 U + 200D U + 1F467 U + 200D U + 1F466 |
Символ эмодзи для «семьи» имеет кодовую точку в Юникоде: 👪 [U + 1F46A FAMILY].Его также можно сформировать с помощью последовательности кодовых точек: 👨👩👦 [U + 1F468 U + 200D U + 1F469 U + 200D U + 1F466]. Изменение или добавление других смайликов может изменить состав семьи. Например, последовательность 👨👩👧👧 [U + 1F468 U + 200D U + 1F469 U + 200D U + 1F467 U + 200D U + 1F466] приводит к составному глифу эмодзи для «семья: мужчина, женщина, девушка. , мальчик «на системах, поддерживающих такой вид композиции. Многие распространенные эмодзи могут быть сформированы только с использованием последовательностей кодовых точек, но их следует рассматривать как один воспринимаемый пользователем символ при отображении или обработке текста.
Экранирование символа — это способ представления символа без фактического использования самого символа.
Например, невозможно напрямую представить еврейский символ א в вашем документе, если вы используете ISO 8859-1.
кодировка (охватывающая западноевропейские языки). Один из способов указать, что вы хотите включить этот символ в HTML, — использовать escape-символ
& # x05D0 ;. Поскольку набором символов документа является Unicode, пользовательский агент должен распознать, что это представляет собой еврейский алеф-символ.
Примеры экранирования в HTML / XHTML и CSS, а также советы о том, когда и как их использовать, можно найти в статье Использование экранирования символов в разметке и CSS .
Когда вы получаете документ с сервера, сервер обычно отправляет некоторую дополнительную информацию вместе с документом. Это называется заголовком HTTP. Вот пример типа информации о документе, который передается HTTP-заголовком вместе с документом, когда он перемещается от сервера к клиенту.
Вторая строка снизу в этом примере содержит информацию о кодировке символов для документа.
HTTP / 1.1 200 ОК Дата: среда, 5 ноября 2003 г., 10:46:04 GMT Сервер: Apache / 1.3.28 (Unix) PHP / 4.2.3 Расположение содержимого: CSS2-REC.en.html Варьировать: переговоры, accept-language, accept-charset TCN: выбор P3P: policyref = http: //www.w3.org/2001/05/P3P/p3p.xml Cache-Control: max-age = 21600. Истекает: Ср, 05 ноя 2003 16:46:04 GMT Последнее изменение: Вт, 12 мая 1998 г., 22:18:49 GMT ETag: "3558cac9; 36f99e2b" Accept-Ranges: байты Длина содержимого: 10734 Подключение: закрыть Тип содержимого: текст / html; charset = UTF-8 Content-Language: en
Если ваш документ создается динамически с использованием сценариев, вы можете явно добавить эту информацию в заголовок HTTP.если ты
обслуживают статические файлы, сервер может связать эту информацию с файлами. Метод настройки сервера для передачи персонажа
информация о кодировании таким образом будет отличаться от сервера к серверу. Вам следует проконсультироваться с администратором сервера.
Например, серверы Apache обычно предоставляют кодировку по умолчанию, которую обычно можно переопределить настройками, зависящими от каталога. Например,
веб-мастер может добавить следующую строку в файл .htaccess для обслуживания всех файлов с расширением.html как UTF-8 в этом и во всех дочерних каталогах:
AddType 'text / html; charset = UTF-8 'html
Для получения дополнительной информации об изменении кодировки в заголовке HTTP см. Установка параметра кодировки HTTP
Таблица
ASCII — коды ASCII, шестнадцатеричные, десятичные, двоичные, html
Сброс | |||||
---|---|---|---|---|---|
декабрь | шестигранник | двоичный | HTML | Char | Описание |
0 | 00 | 00000000 | & # 0; | NUL | Пусто |
1 | 01 | 00000001 | & # 1; | SOH | Начало заголовка |
2 | 02 | 00000010 | & # 2; | STX | Начало текста |
3 | 03 | 00000011 | & # 3; | ETX | Конец текста |
4 | 04 | 00000100 | & # 4; | EOT | Конец передачи |
5 | 05 | 00000101 | & # 5; | ENQ | Запрос |
6 | 06 | 00000110 | & # 6; | ACK | Подтвердить |
7 | 07 | 00000111 | & # 7; | БЕЛ | Белл |
8 | 08 | 00001000 | & # 8; | BS | Backspace |
9 | 09 | 00001001 | & # 9; | HT | Горизонтальный выступ |
10 | 0A | 00001010 | & # 10; | LF | Перевод строки |
11 | 0B | 00001011 | & # 11; | VT | Вертикальный выступ |
12 | 0C | 00001100 | & # 12; | FF | Подача формы |
13 | 0D | 00001101 | & # 13; | CR | Возврат каретки |
14 | 0E | 00001110 | & # 14; | SO | Сдвиг |
15 | 0F | 00001111 | & # 15; | SI | Сдвиг в |
16 | 10 | 00010000 | & # 16; | DLE | Выход из канала передачи данных |
17 | 11 | 00010001 | & # 17; | DC1 | Контроль устройств 1 |
18 | 12 | 00010010 | & # 18; | DC2 | Контроль устройств 2 |
19 | 13 | 00010011 | & # 19; | DC3 | Контроль устройств 3 |
20 | 14 | 00010100 | & # 20; | DC4 | Контроль устройств 4 |
21 | 15 | 00010101 | & # 21; | НАК | Отрицательное подтверждение |
22 | 16 | 00010110 | & # 22; | SYN | Синхронизировать |
23 | 17 | 00010111 | & # 23; | ЭТБ | Конец блока передачи |
24 | 18 | 00011000 | & # 24; | CAN | Отмена |
25 | 19 | 00011001 | & # 25; | EM | Конец среды |
26 | 1A | 00011010 | & # 26; | ПОД | Заменитель |
27 | 1Б | 00011011 | & # 27; | ESC | Побег |
28 | 1С | 00011100 | & # 28; | ФС | Разделитель файлов |
29 | 1D | 00011101 | & # 29; | GS | Групповой разделитель |
30 | 1E | 00011110 | & # 30; | RS | Разделитель записей |
31 | 1F | 00011111 | & # 31; | США | Разделитель агрегатов |
32 | 20 | 00100000 | & # 32; | пространство | Космос |
Конвертер ASCII, Hex, Dec, Bin, Base64 ►
Расширенная таблица ASCII
Кодировка символов | |||||
---|---|---|---|---|---|
декабрь | шестигранник | двоичный | HTML | Char |
Таблица символов Юникода ►
См. Также
- Конвертер ASCII, Hex, Dec, Bin, Base64
- Конвертер ASCII в шестнадцатеричный
- Преобразователь ASCII в двоичный
- Преобразователь двоичного кода в ASCII
- Конвертер Hex в ASCII
- HTML-коды
- символов Unicode
- Windows ALT коды
- ASCII из 0
- ASCII из ‘A’
- ASCII ввода
- ASCII пространства
- Hex, Dec, Bin преобразователь с переключателем бит
Преобразование данных в кодировке Base 64 в текст ASCII
Перейти к конвертеру Base64
Что такое данные в кодировке Base 64?
Проще говоря, данные в кодировке base64 — это строка символов, которая содержит только a-z, A-Z, 0-9, + и
/ символов и часто используется в ситуациях, когда отправляется нетекстовая информация через протокол передачи только текста.
Зачем использовать кодировку Base 64?
Транспортная система протокола электронной почты предназначена для отправки обычного текста ASCII.
Обычный текст ASCII включает a-z, A-Z, 0-9, «,%, &, ‘, (,), *, +, -, _ и, (запятую).
Они будут называться универсальным набором символов ASCII.
Есть и другие символы ASCII, но они не универсальны.
Если электронное письмо отправлено с использованием неуниверсального символа (например, символа £)
получатель электронного письма может увидеть на своем экране или принтере совершенно другой символ.Ситуация еще хуже, когда вы пытаетесь отправить электронную почту на неанглийском языке.
Часто эти языки содержат символы, не входящие в набор ASCII.
Что необходимо, так это способ преобразования неуниверсальных символов ASCII в общую форму.
Эта общая форма называется кодировкой Base64.
Что делает кодировка Base 64?
Кодировка Base 64 принимает поток символов и преобразует их в символы, принадлежащие универсальному набору символов ASCII.
После преобразования потока символов в символы, принадлежащие универсальному набору символов ASCII (в кодировке Base 64)
их можно легко транспортировать через Интернет с помощью протоколов электронной почты.
Как работает кодировка Base 64?
Символы ASCII принадлежат 256-байтовому пространству символов и включают обычные буквенные, числовые, специальные символы (например,%),
управляющие символы (например, CR, LF, BELL) и другие символы.
Каждый символ имеет размер 8 бит.
Для некоторых языков нельзя использовать набор символов ASCII (например, восточные языки пиктографии).
Они используют набор символов UNICODE, где каждому символу требуется 16 бит для его представления.
Количество бит на символ не является проблемой для кодировки Base 64.Кодирование Base 64 принимает поток битов и преобразует их в 8-битные символы, принадлежащие универсальному набору символов ASCII.
Кодирование Base 64 не заботится о том, сколько битов (8 или 16) необходимо для создания символа, поскольку оно работает на битовом уровне.
После преобразования потока битов в символы, принадлежащие универсальному набору символов ASCII (в кодировке Base 64)
их можно легко транспортировать через Интернет с помощью протоколов электронной почты.
Кодировка Base64 требует трех байтов символьных данных (3 символа ASCII или 1½ символа UNICODE).
и производит четыре байта данных из универсального набора символов.То есть кодирование Base64 принимает 24 бита входных данных и преобразует их в 32 бита закодированных данных.
Кодирование Base64 не заботится о данных.
Если данные содержат переводы строки, нули или специальные символы, кодировка Base64 не заботится —
он просто воспринимает это как скопище байтов.
Кодирование «Мэри пришлось» в базе 64
В этом примере мы используем простую текстовую строку («Мэри имела»), но принцип сохраняется независимо от данных (например, графического файла).
Чтобы преобразовать каждые 24 бита входных данных в 32 бита выходных, кодирование Base 64 разбивает 24 бита на 4 блока по 6 бит.Первая проблема, которую мы замечаем, заключается в том, что «Мэри имела» не делится на 3 байта — это 8 байтов.
Из-за этого длина последней группы бит составляет всего 4 бита.
Чтобы исправить это, мы добавляем два дополнительных бита «0» и запоминаем этот факт, помещая «=» в конце.
Если текстовая строка, которая должна быть преобразована в Base 64, имела длину 7 байтов, последняя группа имела бы 2 бита.
В этом случае мы бы добавили четыре дополнительных бита «0» и запомнили бы этот факт, поставив в конце «==».
Затем каждая из этих групп преобразуется в десятичное число от 0 до 63.База 64 получила свое название из-за того, что у каждого элемента есть 64 состояния.
Это то же самое, что и десятичное число, называемое Base 10, если для каждого элемента есть 10 состояний (0-9).
И, наконец, десятичное число используется в качестве индекса универсального набора символов ASCII
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /
чтобы получить строку в кодировке Base 64.
В нашем примере:
Текст ASCII | У Мэри было |
---|---|
Шестнадцатеричное представление текста | 4D 61 72 79 20 68 61 64 |
Битовое представление текста, сгруппированного по байтам | 01001101 01100001 01110010 01111001 00100000 01101000 01100001 01100100 |
Битовое представление текста группами по 6 бит | 010011 010110 000101 110010 011110 010010 000001 101000 011000 010110 010000 = |
Десятичное представление текста группами по 6 бит | 19 22 05 50 30 18 01 40 24 22 16 = |
Строка в кодировке Base 64 | TWFyeSBoYWQ = |
Декодирование TWFyeSBoYWQ = из Base 64 в ASCII
Первое, что следует отметить, — это знак «=» в конце строки в кодировке Base 64.Строка в кодировке Base 64 будет иметь ноль, один или два символа ‘=’ в конце.
Поскольку ‘=’ не является частью кодировки Base 64, он может появляться только в конце и имеет особое значение.
Этапы преобразования данных в кодировке Base 64 в ASCII:
- Возьмите каждую букву и найдите смещение ее позиции (0-63) в пределах
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /
чтобы дать нам 11 десятичных чисел - Эти десятичные числа преобразуются в битовые строки по 6 бит в каждой.
- Поскольку в конце данных, закодированных в Base 64, был знак «=», удалите 2 нуля из конца битовой строки.Если бы в конце данных, закодированных в Base 64, было два знака ‘=’, из конца битовой строки было бы удалено 4 ‘0.
- Разделите биты на группы по 8
- Используйте каждую группу из 8 бит в качестве кода ASCII для символа ASCII или управляющего кода ASCII.
Введение в i18n — Наборы кодированных символов и кодировки в мире
Введение в i18n — Наборы кодированных символов и кодировки в мире
[предыдущий]
[Содержание]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[ следующий ]
Здесь представлены основные наборы кодированных символов и кодировки.Обратите внимание, что вы
не нужно знать подробности этих кодов символов, если вы используете LOCALE и
wchar_t технология.
Однако эти знания помогут вам понять, почему количество байтов
символы, а столбцы следует считать отдельно, почему strchr ()
и так далее, почему вы должны использовать LOCALE и
wchar_t вместо жесткой обработки существующего кода
коды символов и так далее.
Эти разновидности наборов символов и кодировок расскажут вам о трудностях.
людей в мире, чтобы управлять своими языками с помощью компьютеров.Особенно,
Люди CJK не могли не разработать различные технологии для использования большого количества
символы в компьютерных системах на основе ASCII.
Если вы планируете разработать программное обеспечение для обработки текстов за пределами полей
которые покрывает технология LOCALE, вам нужно будет понять следующее
описания очень хорошо. Эти поля включают автоматическое определение кодировок
используется для входного файла (большинство программ просмотра текста с поддержкой японского языка, например
jless
и lv
имеют этот механизм) и так далее.
4.1 ASCII и ISO 646
ASCII одновременно является CCS и кодировкой. ASCII
является 7-битным и содержит 94 печатных символа, которые закодированы в области
0x21 — 0x7e .
ISO 646 — международный стандарт ASCII. Следующие 12
персонажи
называются IRV (Международная справочная версия) и другие 82
(94 — 12 = 82) символы называются BCT (базовая кодовая таблица).Персонажи IRV могут быть разными в разных странах. Вот несколько примеров
версий ISO 646.
Насколько мне известно, все кодировки (кроме EBCDIC) в мире совместимы
с ISO 646.
Символы в 0x00 — 0x1f, 0x20 и 0x7f являются управляющими символами.
В настоящее время использование кодировок, несовместимых с ASCII, не приветствуется, поэтому
ISO 646- * (кроме версии для США) использовать не следует. Одна из причин —
что при преобразовании строки в Unicode конвертер не знает
преобразованы ли IRV в символы той же формы или символы с
те же коды.Другая причина в том, что исходные коды написаны в ASCII. Источник
код должен быть доступен для чтения где угодно.
4,2 ISO 8859
ISO 8859 — это серия CCS и серия кодировок.
Это расширение ASCII с использованием всех 8 бит. Дополнительные 96 для печати
символы, закодированные в 0xa0 — 0xff, доступны помимо 94 ASCII для печати
символы.
Существует 10 вариантов ISO 8859 (на 1997 год).
- ISO-8859-1 Латинский алфавит № 1 (1987)
символы для западноевропейских языков
- ISO-8859-2 Латинский алфавит No.2 (1987)
символы для центральноевропейских языков
- ISO-8859-3 Латинский алфавит No 3 (1988)
- ISO-8859-4 Латинский алфавит № 4 (1988)
символы для языков Северной Европы
- ISO-8859-5 Латинский / кириллица (1988)
- ISO-8859-6 Латинский / арабский алфавит (1987)
- ISO-8859-7 Латинский / греческий алфавит (1987)
- ISO-8859-8 Латинский / еврейский алфавит (1988)
- ISO-8859-9 Латинский алфавит No.5 (1989)
то же, что и ISO-8859-1, за исключением турецкого языка вместо исландского
- ISO-8859-10 Латинский алфавит №6 (1993)
Добавляет инуитские (гренландские) и саамские (саамские) буквы в ISO-8859-4
- ISO-8859-11 Латинский / тайский алфавит (2001)
То же, что и национальный стандарт Таиланда TIS-620
- ISO-8859-13 Латинский алфавит № 7 (1998)
- ISO-8859-14 Латинский алфавит No.8 (кельтский) (1998)
- ISO-8859-15 Латинский алфавит №9 (1999)
- ISO-8859-16 Латинский алфавит No 10 (2001)
Подробное объяснение можно найти по адресу http://park.kiev.ua/mutliling/ml-docs/iso-8859.html
.
4.3 ISO 2022
Используя ASCII и ISO 646, мы можем использовать максимум 94 символа. Используя ISO 8859,
число включает до 190 (= 94 + 96). Однако мы можем захотеть использовать гораздо больше
символы.Или мы можем захотеть использовать некоторые, а не один из этих наборов символов.
Один из ответов — ISO 2022.
ISO 2022 — международный стандарт CES. ISO 2022
определяет несколько требований для CCS, чтобы быть членом ISO 2022 на основе
кодировки. Он также определяет очень обширные (и сложные) правила для объединения
эти CCS в одной кодировке. Многие кодировки, такие как EUC- *, ISO 2022- *,
составной текст, [7] и т. д. может
рассматриваться как подмножество ISO 2022. ISO 2022 настолько сложен, что вы не можете
способен это понять.Это нормально; Здесь важна концепция
ISO 2022 построения кодировки путем переключения различных (соответствует ISO 2022)
кодированные наборы символов.
Шестая редакция ECMA-35 полностью идентична ISO 2022: 1994, и вы можете
найти официальный документ по адресу http://www.ecma.ch/ecma1/stand/ECMA-035.HTM
.
ISO 2022 имеет две версии: 7 бит и 8 бит. Сначала 8-битная версия
объяснил. 7-битная версия — это подмножество 8-битной версии.
8-битное кодовое пространство разделено на четыре области:
GL и GR — это места, где отображаются (печатаемые) наборы символов.
Затем все наборы символов, например, ASCII, ISO 646-UK и JIS X 0208, являются
подразделяются на следующие четыре категории,
Символы в наборах символов с 94 символами отображаются в 0x21 — 0x7e.
Символы в 96-символьном наборе отображаются в 0x20 — 0x7f.
Например, ASCII, ISO 646-UK и JISX 0201 Katakana подразделяются на (1),
JISX 0208 Японские кандзи, KSX 1001 корейский, GB 2312-80 китайский классифицируются
в (3), а ISO 8859- * классифицируются как (2).
Механизм отображения этих наборов символов в GL и GR немного сложен.
Имеется четыре буфера: G0, G1, G2 и G3. Набор символов
обозначается как в один из этих буферов, а затем буфер
вызвал в GL или GR.
Определяются управляющие последовательности для «обозначения» набора символов в буфере.
как показано ниже.
где ‘F’ определяется для каждого набора символов:
Полный список этих кодированных символов можно найти в Международном регистре кодированных символов .
.
Наборы символов
Коды управления для «вызова» одного из G {0123} в GL или GR определяются, как показано ниже.
[8]
Обратите внимание, что код в наборе символов, вызываемом в GR, имеет 0x80.
ISO 2022 также определяет код диктора . Например, ESC
0x20 0x41 ‘означает’ Используется только буфер G0. G0 уже вызван в GL ‘.
Это упростит систему кодирования. Даже этот диктор может быть опущен, если люди
кто обменивается данными соглашаются.
7-битная версия ISO 2022 является подмножеством 8-битной версии.Он не использует C1 и
GR.
Пояснения к C0 и C1 здесь опущены.
4.3.1 EUC (расширенный код Unix)
EUC — это CES, который является подмножеством 8-битной версии ISO 2022
за исключением использования кода SS2 и SS3. Хотя эти коды используются для
вызывать G2 и G3 в GL в ISO 2022, они вызываются в GR в EUC.
EUC-JP , EUC-KR , EUC-CN и
EUC-TW — широко используемые кодировки, которые используют EUC в качестве CES.
EUC не имеет гражданства.
EUC может содержать 4 CCS с использованием G0, G1, G2 и G3. Хотя нет
требование, чтобы ASCII был назначен на G0, я не знаю кодов EUC в
который ASCII не обозначен как G0.
Для EUC с G0-ASCII все коды, кроме ASCII, закодированы в 0x80 — 0xff
и это обратно совместимо с ASCII.
Описываются выражения для символов в наборах символов G0, G1, G2 и G3.
ниже в двоичном формате:
где SS2 — это 0x8e, а SS3 — 0x8f.
4.3.2 Наборы символов, соответствующие ISO 2022
Существует множество национальных и международных стандартов кодированных наборов символов.
(CCS). Некоторые из них соответствуют ISO 2022 и могут использоваться в ISO 2022.
кодирование.
CCS, соответствующие стандарту ISO 2022, относятся к одному из них:
Самый известный набор из 94 символов — US-ASCII. Кроме того, все варианты ISO 646
94 набора символов в соответствии с ISO 2022.
Все наборы символов ISO 8859- * являются 96 наборами символов, соответствующими ISO 2022.
Есть много наборов символов 94×94. Все они относятся к идеограммам CJK.
- JISX 0208 (он же JIS C 6226)
Национальный стандарт Японии. Версия 1978 года содержит 6802 символа, включая
Кандзи (идеограмма), хирагана, катакана, латынь, греческий, кириллица, числа и
другие символы. Текущая (1997 г.) версия содержит 7102 символа.
- JISX 0212
Национальный стандарт Японии.6067 знаков (почти из них кандзи). Этот
набор символов предназначен для использования в дополнение к JISX 0208.
- JISX 0213
Японский национальный стандарт. Выпущен в 2000 г. Сюда входит JISX 0208.
персонажей и дополнительные тысячи символов. Таким образом, это предназначено для
быть расширением и заменой JISX 0208. Он состоит из двух символов 94×94
наборы, один из них включает JISX 0208 плюс около 2000 символов и
другой включает около 2400 знаков.Собственно говоря, JISX 0213 не является
простой расширенный набор JISX 0208, потому что несколько десятков вариантов кандзи,
унифицированы и имеют одинаковые кодовые точки в JISX 0208, не унифицированы и имеют
отдельные кодовые точки в JISX 0213. Совместное использование многих символов с JISX 0212.
- KSX 1001 (он же KSC 5601)
Национальный стандарт Южной Кореи. 8224 символа, включая 2350 хангыль, ханджа
(идеограмма), хирагана, катакана, латинский, греческий, кириллица и другие символы.Ханджа упорядочена по чтению, а ханджа с несколькими чтениями закодирована
много раз.
- KSX 1002
Национальный стандарт Южной Кореи. 7659 символов, включая хангыль и ханджу.
Предназначен для использования в дополнение к KSX 1001.
- КПС 9566
Национальный стандарт Северной Кореи. Аналогичен KSX 1001.
- ГБ 2312
Национальный стандарт Китая.7445 знаков, в том числе 6763 ханзи (идеограмма),
Латинская, греческая, кириллица, хирагана, катакана и другие символы.
- ГБ 7589 (он же GB2)
Национальный стандарт Китая. 7237 Hanzi. Предназначен для использования в дополнение к ГБ
2312.
- ГБ 7590 (также известный как GB4)
Национальный стандарт Китая. 7039 Hanzi. Предназначен для использования в дополнение к ГБ
2312 и ГБ 7589.
- ГБ 12345 (также известный как GB / T 12345, GB1 или GBF)
Национальный стандарт Китая.7583 символа. Версия традиционных персонажей
которые соответствуют упрощенным символам GB 2312.
- ГБ 13131 (также известный как GB3)
Национальный стандарт Китая. Версия традиционных символов, соответствующих
GB 7589 упрощенные символы.
- ГБ 13132 (также известный как GB5)
Национальный стандарт Китая. Версия традиционных символов, соответствующих
GB 7590 упрощенные символы.
- CNS 11643
Национальный стандарт Тайваня. Имеет 7 равнин. Обычные 1 и 2 включают все
персонажи, входящие в Big5. Plain 1 включает 6085 символов, включая Ханзи
(идеограмма), латинские, греческие и другие символы. Обычный 2 включает 7650. Количество
символ для простого 3 — 6184, простой 4 — 7298, простой 5 — 8603, простой 6 —
6388, а обычная 7 — 6539.
Имеется набор символов 94x94x94. Это CCCII .Это
национальный стандарт Тайваня. Теперь включено 73400 символов. (Номер
повышается.)
Наборы символов, не соответствующие стандарту ISO 2022, представлены позже в разделе 4.5 «Другие наборы символов и кодировки».
4.3.3 Кодировки, соответствующие ISO 2022
Существует множество кодировок, совместимых с ISO 2022, которые являются подмножествами ISO 2022.
- Составной текст
Это используется для X-клиентов для связи друг с другом, например, копипаст.
- EUC-JP
Кодировка EUC с кодировкой ASCII, JISX 0208, JISX 0201 Kana и JISX 0212
наборы символов. Многие системы не поддерживают JISX 0201 Kana.
и JISX 0212. Широко используется в Японии для систем POSIX.
- EUC-KR
Кодировка EUC с ASCII и KSX 1001.
- CN-GB (также известный как EUC-CN)
Кодировка EUC с ASCII и GB 2312.Самая популярная кодировка в R.P.
Китай. Эту кодировку иногда называют просто «ГБ».
- EUC-TW
Расширенное кодирование EUC с ASCII, CNS 11643 plain 1 и другими (2-7) простыми кодами.
ЦНС 11643.
- ISO 2022-JP
Описано в.
RFC.
.
1468***** Еще не написано *****
- ISO 2022-JP-1 (более высокая совместимость с ISO 2022-JP)
Описан в
RFC.
.
2237***** Еще не написано *****
- ISO 2022-JP-2 (более высокая совместимость с ISO 2022-JP-1)
Описан в
RFC.
.
1554***** Еще не написано *****
- ISO 2022-KR
он же Wansung. Описан в
RFC 1557
.***** Еще не написано *****
- ISO 2022-CN
Описано в RFC
RFC
.
1922***** Еще не написано *****
Кодировки, не соответствующие ISO 2022, представлены позже в разделе 4.5 «Другие наборы символов и кодировки».
4.4 ISO 10646 и Unicode
ISO 10646 и Unicode — еще один стандарт, поэтому мы можем разработать
международное программное обеспечение легко. Особенности этого нового стандарта:
Китайская, японская и корейская идеограммы едины. Это происходит из
ограничение Unicode.Это не заслуга.
ISO 10646 — официальный международный стандарт. Unicode разработан
Консорциум Unicode
. Эти
два почти идентичны. Действительно, эти два абсолютно идентичны в коде
точки, которые доступны в обоих двух стандартах. Юникод иногда обновляется
а последняя версия — 3.0.1.
4.4.1 UCS как набор кодированных символов
ISO 10646 определяет два CCS (наборы кодированных символов), UCS-2 и
УКС-4 .UCS-2 — это подмножество UCS-4.
UCS-4 — это 31-битный CCS. Эти 31 бит делятся на 7, 8, 8 и 8 бит и
у каждого из них есть специальный термин.
Первый самолет (Group = 0, Plane = 0) называется BMP (Basic
Multilingual Plane) и UCS-2 совпадает с BMP. Таким образом, UCS-2 — это 16-битная CCS.
Кодовые точки в UCS часто выражаются как u + ???? , г.
где ???? — шестнадцатеричное выражение кодовой точки.
Символы в диапазоне u + 0021 — u + 007e совпадают с ASCII и символами в
диапазон u + 0xa0 — u + 0xff соответствует ISO 8859-1.Таким образом, очень легко
конвертировать между ASCII или ISO 8859-1 и UCS.
Unicode (версия 3.0.1) использует 20-битное подмножество UCS-4 в качестве CCS. [10]
Уникальная особенность этих CCS по сравнению с другими CCS — открытая
репертуар . Они развиваются даже после того, как выпущены. Символы
будет добавлено в будущем. Однако уже закодированные символы не изменятся.
Unicode версии 3.0.1 включает 49194 различных закодированных символа.
4.4.2 UTF как схемы кодирования символов
Несколько CES используются для построения кодировок, которые используют UCS в качестве CCS.Они есть
UTF-7 , UTF-8 , UTF-16 ,
UTF-16LE и UTF-16BE . UTF означает Unicode
(или UCS) Формат преобразования. Поскольку эти CES всегда принимают UCS как единственную
CCS, они же имена для кодировок. [11]
4.4.2.1 UTF-8
UTF-8 — это кодировка, CCS которой — UCS-4. UTF-8 предназначен для
обратно совместим с ASCII. UTF-8 является многобайтовым, и количество байтов, необходимое для
выразить один символ от 1 до 6.
Преобразование из UCS-4 в UTF-8 выполняется с помощью простого правила преобразования.
UCS-4 (двоичный) UTF-8 (двоичный) 00000000 00000000 00000000 0 ??????? 0 ??????? 00000000 00000000 00000 ??? ???????? 110 ????? 10 ?????? 00000000 00000000 ???????? ???????? 1110 ???? 10 ?????? 10 ?????? 00000000 000 ????? ???????? ???????? 11110 ??? 10 ?????? 10 ?????? 10 ?????? 000000 ?? ???????? ???????? ???????? 111110 ?? 10 ?????? 10 ?????? 10 ?????? 10 ?????? 0 ??????? ???????? ???????? ???????? 1111110? 10 ?????? 10 ?????? 10 ?????? 10 ?????? 10 ??????
Обратите внимание, что будет использоваться самый короткий, хотя более длинное представление может выражать
меньшие значения ПСК.
UTF-8, кажется, является одним из основных кандидатов на стандартные кодовые наборы в
будущее. Например, консоль Linux и xterm поддерживают UTF-8. Пакет Debian
из локалей
(версия 2.1.97-1) содержит ko_KR.UTF-8
локаль. Думаю, количество локалей UTF-8 увеличится.
4.4.2.2 UTF-16
UTF-16 — это кодировка, CCS которой — 20-битный Unicode.
Символы в BMP выражаются с использованием 16-битного значения кодовой точки в Unicode CCS.Есть два способа выразить 16-битное значение в 8-битном потоке. Некоторые из вас могут
слышал слово endian . с прямым порядком байтов означает расположение
октеты, которые являются частью данных со многими битами от самого старшего октета до
наименее значимый. Обратный порядок байтов — противоположный. Например, 16 бит
значение 0x1234 выражается как 0x12 0x34 в большом
endian и 0x34 0x12 в прямом порядке.
UTF-16 поддерживает оба порядка байтов.Таким образом, Unicode-символ u + 1234
может быть выражено как 0x12 0x34 или 0x34 0x12 .
Вместо этого тексты UTF-16 должны иметь спецификацию (отметка порядка байтов)
сначала из них. Символ Юникода u + feff нулевая ширина
неразрывный пробел называется спецификацией, когда он используется для указания порядка байтов или
endian текстов. Механизм прост: с прямым порядком байтов, u + feff
будет 0xfe 0xff , тогда как это будет 0xff 0xfe в
с прямым порядком байтов.Таким образом, вы можете понять порядок байтов в тексте, прочитав
первые два байта. [12]
Символы, не включенные в BMP, выражаются с помощью суррогата
пара . Кодовые точки u + d800 — u + dfff являются
зарезервировано для этой цели. Сначала делятся 20 бит кодовой точки Unicode.
на два набора по 10 бит. Значимые 10 бит отображаются в 10-битное пространство
u + d800 — u + dbff . Меньшие 10 битов отображаются на
10-битное пространство u + dc00 — u + dfff .Таким образом, UTF-16 может
выразить 20-битные символы Unicode.
4.4.2.3 UTF-16BE и UTF-16LE
UTF-16BE и UTF-16LE — это варианты UTF-16, которые ограничены большими и
с прямым порядком байтов соответственно.
4.4.2.4 UTF-7
UTF-7 разработан так, что Unicode может передаваться с использованием 7-битной связи
путь.
***** Еще не написано *****
4.4.2.5 UCS-2 и UCS-4 как кодировки
Хотя я представил UCS-2, а UCS-4 — это CCS, они могут быть кодировками.
В кодировке UCS-2 каждый символ UCS-2 выражается в двух байтах. В UCS-4
кодировка, Каждый символ UCS-4 выражается в четырех байтах.
4.4.3 Проблемы с Unicode
Все стандарты не свободны от политики и компромиссов. Хотя концепция
единый единый CCS для всех персонажей мира очень приятный, Unicode пришлось
учитывать совместимость с предыдущими международными и местными стандартами. А также
Более того, в отличие от идеальной концепции, Unicode люди считали эффективность слишком большой.IMHO, суррогатная пара — это беспорядок, вызванный отсутствием 16-битного кодового пространства. я буду
представить несколько проблем с Unicode.
4.4.3.1 Объединение Хань
Это тот момент, за который Unicode критикуют больше всего среди многих
Японцы.
Область 0x4e00 — 0x9fff в UCS-2 используется для восточно-азиатских идеографов.
(Японские кандзи, китайские ханзи и корейские ханджи). Есть похожие
символов в этих четырех наборах символов. (Есть два набора китайских
иероглифы, упрощенный китайский, используемый в P.R. Китай и традиционный китайский
используется на Тайване). Чтобы уменьшить количество кодируемых идеограмм (
регион для этих символов может содержать только 20992 символа, в то время как только Тайвань
Стандарт CNS 11643 содержит 48711 символов), эти похожие символы
предполагается то же самое. Это ханьское объединение.
Однако эти персонажи не совсем одинаковые. Если шрифты для этих
иероглифы сделаны из китайского, японцы сочтут их неправильно
персонажей, хотя они могут читать.Люди Unicode думают, что они объединены
символы — это один и тот же символ с разными глифами.
Пример Han Unification доступен по телефону U + 9AA8
.
Это иероглиф кандзи для слова «кость». U + 8FCE
это еще один пример иероглифа кандзи для слова «добро пожаловать». Часть слева
из стороны в сторону — это радикал «бега». Радикал «Беги» используется для многих канджи.
и у всех одна и та же проблема. U + 76F4
это еще один пример иероглифа кандзи для слова «прямой».Я, родной
Японец не может распознать китайскую версию.
Поставщики шрифтов Unicode не решаются выбирать шрифты для этих символов,
упрощенный китайский иероглиф, традиционный китайский, японский или корейский
один. Один из способов — предоставить четыре шрифта упрощенной китайской версии,
традиционная китайская версия, японская версия и корейская версия. Коммерческий
Поставщик ОС может выпустить локализованную версию своей ОС — например, японскую.
версия MS Windows может включать японскую версию шрифта Unicode (это
что именно они делают).Однако как быть с XFree86 или Debian? я
не знаю … [13] [14]
4.4.3.2 Таблицы перекрестного сопоставления
Unicode призван стать надмножеством всех основных кодировок в мире, таких как
ISO-8859- *, EUC- *, KOI8- * и так далее. Это делается для того, чтобы
совместимость и плавный переход с других кодировок на Unicode.
Недостаточно только предоставить расширенный набор. Надежные таблицы перекрестного сопоставления
между Unicode и другими кодировками.Они предоставляются Unicode Consortium
.
Однако таблицы для восточноазиатских кодировок не представлены. Они были предоставлены
но сейчас устаревшие
.
Вы можете использовать эти таблицы сопоставления, даже если они устарели, потому что
других таблиц сопоставления нет. Однако вы найдете серьезный
проблема для этих таблиц. Есть несколько различных таблиц сопоставления для
Японские кодировки, включающие набор символов JIS X 0208. Таким образом, один и тот же
символ в JIS X 0208 будет отображаться в разные символы Unicode
согласно этим таблицам сопоставления.Например, Microsoft и Sun используют
другая таблица, что приводит к Java на MS Windows иногда ломает японский
символы.
Хотя мы, люди с открытым исходным кодом, должны уважать взаимодействие, мы не можем достичь
достаточное взаимодействие из-за этой проблемы. Все, чего мы можем достичь
это взаимодействие между программным обеспечением с открытым исходным кодом.
GNU libc использует JIS / JIS0208.TXT
с небольшой доработкой. Модификация заключается в том, что
Причина этой модификации в том, что набор символов JIS X 0208 почти
всегда используется в сочетании с ASCII в форме EUC-JP и так далее.ASCII
0x5c, а не JIS X 0208 0x2140, должен отображаться в U + 005C. Эта измененная таблица
находится по адресу /usr/share/i18n/charmaps/EUC-JP.gz в системе Debian.
Конечно, эта таблица сопоставления НЕ авторизована и не надежна.
Я надеюсь, что Консорциум Unicode выпустит авторизованное надежное уникальное сопоставление
таблица между Unicode и JIS X 0208. Вы можете прочитать подробности этого
.
проблема
4.4.3.3 Объединение символов
В Unicode есть способ синтезировать акцентный символ путем комбинирования акцента
символ и базовый символ.Например, сочетание «а» и «~» дает «а» с
тильда. К основному символу можно добавить более двух знаков ударения.
В таких языках, как тайский, необходимо комбинировать символы. Комбинированные символы — это
единственный способ выразить символы на этих языках.
Однако возникает несколько проблем.
- Дублированное кодирование
Есть несколько способов выразить один и тот же персонаж. Например, u с
умляут может быть выражен как u + 00fc , а также как u + 0075
+ U + 0308 .Как мы можем реализовать grep и т. Д.?
- Открытый репертуар
Количество выразимых символов неограниченно растет. Несуществующие персонажи
можно выразить.
4.4.3.4 Суррогатная пара
Первая версия Unicode имела только 16-битное кодовое пространство, хотя 16-битное — это
явно недостаточно, чтобы вместить всех персонажей мира. [15] Таким образом, суррогатная пара
введен в Unicode 2.0, чтобы увеличить количество символов, с сохранением
совместимость с прежним 16-битным Unicode.
Однако суррогатная пара нарушает принцип, согласно которому все символы выражены.
с одинаковой шириной бит. Это усложняет программирование Unicode.
К счастью, Debian и другие UNIX-подобные системы будут использовать UTF-8 (не UTF-16) в качестве
обычная кодировка для UCS. Таким образом, нам не нужно обрабатывать UTF-16 и суррогат
пара очень часто.
4.4.3.5 ISO 646- * Проблема
Вам понадобится конвертер кодовых наборов между вашими локальными кодировками (например,
ISO 8859- * или ISO 2022- *) и Unicode.Например, кодировка Shift-JIS [16] состоит из JISX 0201 Roman
(Японская версия ISO 646), а не ASCII, который кодирует марку валюты иены в
0x5c , где обратная косая черта закодирована в ASCII.
Тогда что ваш конвертер должен преобразовать 0x5c в Shift-JIS в в
Unicode, u + 005c (обратная косая черта) или u + 00a5 (валюта иена
отметка)? Вы можете сказать, что марка иены — правильное решение. Однако,
обратная косая черта (а затем знак йены) широко используется для escape-символа.За
Например, «новая строка» выражается как «обратная косая черта — n » в строке C
буквально и японцы используют «марка валюты иены — n ». Ты можешь
говорят, что исходные тексты программ должны быть написаны в кодировке ASCII, и неверно то, что вы
Пытался конвертировать исходники программы. Однако есть много исходных кодов и поэтому
написано в кодировке Shift-JIS.
Теперь Windows поддерживает Unicode и шрифт u + 005c для
В японской версии Windows используется марка йены. Как известно, обратная косая черта (иена
денежная марка в Японии) жизненно важна для Windows, потому что она используется для
отдельные имена каталогов.К счастью, EUC-JP, который широко используется для UNIX
в Японии включает ASCII, а не японскую версию ISO 646. Так что это не
проблема, потому что ясно, что 0x5c — это обратная косая черта.
Таким образом, все локальные кодовые наборы не должны использовать наборы символов, несовместимые с ASCII,
например ISO 646- *.
Проблемы и
обсуждает
Решения для Unicode и символов, определяемых пользователем / поставщиком
по этой проблеме.
4.5 Другие наборы символов и кодировки
Помимо совместимых с ISO 2022 кодированных наборов символов и кодировок, описанных в ISO 2022-совместимых наборах символов, раздел 4.3.2 и
Кодировки, соответствующие ISO 2022, раздел 4.3.3, там
много популярных кодировок, которые нельзя отнести к международным
стандарт (то есть не соответствует ISO 2022 или Unicode). Интернационализированный
программное обеспечение должно поддерживать эти кодировки (опять же, вам не нужно знать о
кодировки, если вы используете технологию LOCALE и wchar_t ). Некоторые
организации разрабатывают системы, которые идут дальше ограничений
действующие международные стандарты, хотя эти системы могут не очень распространяться
пока так много.
4.5.1 Большой5
Big5 — де-факто стандартная кодировка для Тайваня (1984) и
обратно совместим с ASCII. Это тоже CCS.
В Big5 0x21 — 0x7e означает символы ASCII.
0xa1 — 0xfe создает пару со следующим байтом
( 0x40 — 0x7e и 0xa1 —
0xfe ) и означает идеограмму и так далее (13461 символ).
Хотя на Тайване действует новый стандарт CNS 11643, соответствующий ISO 2022, Big5, похоже,
более популярен, чем CNS 11643.(CNS 11643 — это CCS, и есть несколько ISO
Кодировки, производные от 2022, которые включают CNS 11643.)
4.5.2 UHC
UHC — это кодировка, совместимая снизу вверх с
EUC-KR . Двухбайтовые символы (первый байт:
0x81 — 0xfe ; второй байт: 0x41 —
0x5a , 0x61 — 0x7a и 0x81
— 0xfe ) включают KSX 1001 и другие хангыль, чтобы UHC мог выражать
все 11172 хангыль.
4.5.3 Джохаб
Johab — это кодировка, набор символов которой идентичен
UHC , т.е. ASCII, KSX 1001 и все остальные символы хангыль.
Джохаб в переводе с корейского означает сочетание. В Джохабе кодовая точка хангыль может быть
рассчитывается из комбинации частей хангыль (джамо).
4.5.4 HZ, он же HZ-GB-2312
HZ — это кодировка, описанная в RFC 1842
. CCS (кодированный
наборов символов) HZ — это ASCII и GB2312.Это 7-битная кодировка.
Обратите внимание, что HZ не поддерживает восходящую совместимость с ASCII, поскольку
« ~ {» означает режим GB2312, « ~} » означает режим ASCII, и
‘ ~~ ‘ означает ASCII ‘~’.
4.5.5 ГБК
GBK — это кодировка, которая обратно совместима с CN-GB. ГБК
охватывает ASCII, GB2312, другие идеограммы Unicode 1.0 и многое другое. Диапазон
двухбайтовых символов в GBK: 0x81 — 0xfe для
первый байт и 0x40 — 0x7e и 0x80 —
0xfe для второго байта.21886 кодовых точек из 23940 в
определены двухбайтовые области.
GBK — одна из популярных кодировок в Р. П. Китая.
4.5.6 ГБ18030
GB 18030 — это кодировка, которая обратно совместима с GBK и
CN-GB. Это недавний национальный стандарт Китая (выпущен 17 марта 2000 г.).
Он добавляет к GBK четырехбайтовые символы. Его диапазон: 0x81 —
0xfe для первого байта, 0x30 — 0x39 для
второй байт, 0x81 — 0xfe для третьего байта и
0x30 — 0x39 для четвертого байта.
Он включает в себя все символы Unicode 3.0 Unihan Extension A. И многое другое, ГБ
18030 предоставляет пространство кода для всех используемых и неиспользуемых кодовых точек Unicode.
самолет 0 (БМП) и 16 дополнительных самолетов.
А
доступно.
подробное объяснение по GB18030
4.5.7 GCCS
GCCS — это стандарт кодированного набора символов Гонконга (HKSAR:
Особый административный район Гонконг). Он включает 3049 знаков. это
сокращение от Government Common Character Set.Он определяется как
дополнительный набор символов для Big5 . Символы в GCCS закодированы в
Пользовательская область (как и область частного использования для UCS) в Big5.
4.5.8 HKSCS
HKSCS является расширением и дополнением GCCS. Включает 4702
символы. Это означает дополнительный набор символов Гонконга.
Помимо использования в определяемой пользователем области в Big5, HKSCS определяет использование в
Область частного использования в Юникоде.
4.5.9 Shift-JIS
Shift-JIS — одна из популярных кодировок в Японии. Его CCS являются
JISX 0201 Roman, JISX 0201 Kana и JISX 0208.
JISX 0201 Roman — это японская версия стандарта ISO 646. Он определяет марку валюты иен.
для 0x5c , где ASCII имеет обратную косую черту. 0xa1 —
0xdf — однобайтовый символ, JISX 0201 Kana. Двухбайтовый
символ (первый байт: 0x81 — 0x9f и
0xe0 — 0xef ; второй байт: 0x40 —
0x7e и 0x80 — 0xfc ) — это JISX 0208.
Японская версия MS DOS, MS Windows и Macintosh используют эту кодировку, хотя
эта кодировка не часто используется в системах POSIX.
4.5.10 VISCII
Вьетнамский язык использует 186 символов (латинские алфавиты с акцентами) и
другие символы. Это немного больше, чем предел кодировки, подобной ISO 8859.
VISCII — это стандарт для вьетнамского языка. Он совместим с восходящей
с ASCII. Он 8-битный и не имеет состояния, как серия ISO 8859.Однако он использует
кодовые точки не только 0x21 — 0x7e и
0xa0 — 0xff , но также 0x02 ,
0x05 , 0x06 , 0x14 , 0x19 ,
0x1e и 0x80 — 0x9f . Это делает
VISCII не соответствует стандарту ISO 2022.
Во Вьетнаме появился новый набор символов, соответствующий ISO 2022 TCVN 5712
VN2 (он же VSCII ). В TCVN 5712 VN2 с ударением
символы выражаются как комбинированные символы.Обратите внимание, что некоторые из акцентированных
символы имеют свои собственные кодовые точки.
4.5.11 TRON
TRON
это проект
разработать новую операционную систему, основанную на сотрудничестве отраслей и
ученые в Японии с 1984 года.
Наиболее распространенной версией семейств операционных систем TRON является ITRON,
ОС реального времени для встраиваемых систем. Однако сейчас ITRON нас не интересует.
TRON определяет кодировку TRON.
Кодировка TRON с отслеживанием состояния.Каждое состояние присваивается каждому языку. Оно имеет
уже определено около 130000 символов (январь 2000 г.).
4.5.12 Модзикё
Mojikyo
— это проект,
разработать среду, в которой пользователь может использовать множество персонажей мира.
Проект Mojikyo выпустил прикладное программное обеспечение для MS Windows для отображения
и введите около
символов. Вы можете скачать программу и TrueType,
Шрифты TeX и CID, хотя они и не свободны от DFSG.
[предыдущий]
[Содержание]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[ следующий ]
Введение в i18n
31 мая 2018 г. Томохиро КУБОТА mailto: debian at tmail dot plala dot or dot jp (удаленный DD)
URL Encode and Decode — Online
О
Meet URL Decode and Encode, простом онлайн-инструменте, который делает именно то, что он говорит; декодирует кодировку URL и кодирует в нее быстро и легко.URL кодирует ваши данные без проблем или декодирует их в удобочитаемый формат. Кодирование URL-адреса
, также известное как процентное кодирование, представляет собой механизм кодирования информации в универсальном идентификаторе ресурса (URI) при определенных обстоятельствах. Хотя это называется кодировкой URL, на самом деле она используется в более общем плане в основном наборе универсальных идентификаторов ресурсов (URI), который включает как универсальный указатель ресурса (URL), так и универсальное имя ресурса (URN). В качестве такового он также используется при подготовке данных типа носителя «application / x-www-form-urlencoded», как это часто бывает при отправке данных HTML-формы в HTTP-запросах.
Дополнительные параметры
- Набор символов: Наш веб-сайт использует набор символов UTF-8, ваши входные данные передаются в этом формате. Измените этот параметр, если вы хотите преобразовать его в другой перед кодированием. Обратите внимание, что в случае текстовых данных схема кодирования не содержит их набора символов, поэтому вам, возможно, придется указать выбранный в процессе декодирования. Что касается файлов, по умолчанию используется двоичный параметр, при котором любое преобразование не выполняется; это требуется для всего, кроме текстовых документов.
- Разделитель новой строки: В системах Unix и Windows используются разные символы разрыва строки, предыдущая кодировка любого варианта будет заменена в ваших данных на выбранный вариант. В разделе файлов это частично не имеет значения, поскольку они содержат предполагаемые версии, но вы можете определить, какую из них использовать для кодирования каждой строки отдельно и разделения строк на функции фрагментов.
- Кодируйте каждую строку отдельно: Даже символы новой строки преобразуются в их процентную кодированную форму.Используйте эту опцию, если вы хотите закодировать несколько независимых записей данных, разделенных переносом строки. (*)
- Разделить строки на фрагменты: Закодированные данные будут представлять собой непрерывный текст без пробелов. Отметьте этот параметр, если хотите разбить его на несколько строк. Применяемое ограничение на количество символов определено в спецификации MIME (RFC 2045), в которой указано, что длина закодированных строк не должна превышать 76 символов. (*)
- Режим реального времени: Когда вы включаете эту опцию, введенные данные немедленно кодируются с помощью встроенных функций JavaScript вашего браузера — без отправки какой-либо информации на наши серверы.В настоящее время этот режим поддерживает только набор символов UTF-8.
(*) Эти параметры нельзя включить одновременно, так как результирующий вывод не будет действителен для большинства приложений.
Надежно и надежно
Все коммуникации с нашими серверами осуществляются через безопасные зашифрованные соединения SSL (https). Загруженные файлы удаляются с наших серверов сразу после обработки, а полученный загружаемый файл удаляется сразу после первой попытки загрузки или 15 минут бездействия.Мы никоим образом не храним и не проверяем содержимое введенных данных или загруженных файлов. Прочтите нашу политику конфиденциальности ниже для получения более подробной информации.
Совершенно бесплатно
Наш инструмент можно использовать бесплатно. Теперь вам не нужно загружать какое-либо программное обеспечение для таких задач.
Подробная информация о кодировке URL-адреса
Типы символов URI
Допустимые символы в URI либо зарезервированы, либо не зарезервированы (или символ процента как часть процентного кодирования).Зарезервированные символы — это те символы, которые иногда имеют особое значение. Например, символы косой черты используются для разделения разных частей URL-адреса (или, в более общем смысле, URI). Незарезервированные символы не имеют такого значения. При использовании процентного кодирования зарезервированные символы представляются с помощью специальных последовательностей символов. Наборы зарезервированных и незарезервированных символов, а также обстоятельства, при которых определенные зарезервированные символы имеют особое значение, незначительно менялись с каждым пересмотром спецификаций, управляющих URI и схемами URI.
RFC 3986 раздел 2.2 Зарезервированные символы (январь 2005 г.) !
*
'
(
)
;
:
@
и
=
+
$
92 92 ,92 9
#
[
]
RFC 3986 раздел 2.3 незарезервированных символа (январь 2005 г.) A
B
C
D
E
F
I
J
K
L
M
N
O
9029 S
T
U
V
W
X
Y
9029 c
d
e
f
г
h
i
j
k
l
m
9029 q
r
s
t
u
v
w
9029 0
1
2
3
4
5
694
6
92
-
_
.
~
Другие символы в URI должны быть закодированы в процентах.
Зарезервированные символы с процентным кодированием
Когда символ из зарезервированного набора («зарезервированный символ») имеет особое значение («зарезервированное назначение») в определенном контексте, а схема URI сообщает, что необходимо использовать этот символ для какой-то другой цели, тогда этот символ должен быть закодирован в процентах. Процентное кодирование зарезервированного символа включает преобразование символа в соответствующее ему байтовое значение в ASCII и последующее представление этого значения в виде пары шестнадцатеричных цифр.Цифры, которым предшествует знак процента ("%"), затем используются в URI вместо зарезервированного символа. (Для символа, отличного от ASCII, он обычно преобразуется в его последовательность байтов в UTF-8, а затем каждое значение байта представляется, как указано выше.)
Зарезервированный символ «/», например, если он используется в пути « "компонент URI, имеет особое значение как разделитель между сегментами пути. Если в соответствии с заданной схемой URI «/» должен находиться в сегменте пути, тогда в этом сегменте должны использоваться три символа «% 2F» или «% 2f» вместо необработанного «/».
Зарезервированные символы после процентного кодирования !
#
$
и
'
(
)
*92 92 :
;
=
?
@
[
]
% 21
% 23
% 24
% 28
% 29
% 2A
% 2B
% 2C
% 2F
10% 3A 3D
% 3F
% 40
% 5B
% 5D
Зарезервированные символы, которые не имеют зарезервированного назначения в определенном контексте, также могут быть закодированы в процентах, но не семантически отличается от других.
В компоненте «запрос» URI (часть после символа?), Например, «/» по-прежнему считается зарезервированным символом, но обычно он не имеет зарезервированного назначения, если в конкретной схеме URI не указано иное. Символ не нужно кодировать в процентах, если он не имеет зарезервированной цели.
URI, которые отличаются только тем, является ли зарезервированный символ закодированным в процентах или отображается буквально, обычно считаются не эквивалентными (обозначающими один и тот же ресурс), если не может быть определено, что рассматриваемые зарезервированные символы не имеют зарезервированной цели.Это определение зависит от правил, установленных для зарезервированных символов отдельными схемами URI.
Процентное кодирование незарезервированных символов
Символы из незарезервированного набора никогда не нуждаются в процентном кодировании.
URI, которые различаются только тем, является ли незарезервированный символ закодированным в процентах или выглядит буквально, эквивалентны по определению, но на практике процессоры URI не всегда могут распознать эту эквивалентность. Например, потребители URI не должны трактовать "% 41" иначе, чем "A" или "% 7E" иначе, чем "~", но некоторые это делают.Для максимальной совместимости производителям URI не рекомендуется использовать процентное кодирование незарезервированных символов.
Процентное кодирование символа процента
Поскольку символ процента («%») служит индикатором для октетов, закодированных в процентах, он должен быть закодирован в процентах как «% 25», чтобы этот октет использовался в качестве данных внутри URI.
Процентное кодирование произвольных данных
Большинство схем URI включают представление произвольных данных, таких как IP-адрес или путь файловой системы, как компоненты URI.Спецификации схемы URI должны, но часто этого не делать, предоставлять явное сопоставление между символами URI и всеми возможными значениями данных, представленными этими символами.
Двоичные данные
С момента публикации RFC 1738 в 1994 году было указано [1], что схемы, которые обеспечивают представление двоичных данных в URI, должны разделять данные на 8-битные байты и кодировать их в процентах. byte таким же образом, как указано выше. Например, байтовое значение 0F (шестнадцатеричное) должно быть представлено как «% 0F», а байтовое значение 41 (шестнадцатеричное) может быть представлено как «A» или «% 41».Использование незакодированных символов для буквенно-цифровых и других незарезервированных символов обычно является предпочтительным, поскольку это приводит к более коротким URL-адресам.
Символьные данные
Процедура процентного кодирования двоичных данных часто экстраполировалась, иногда неправильно или не полностью, для применения к символьным данным. В годы становления Всемирной паутины при работе с символами данных в репертуаре ASCII и использовании соответствующих им байтов в ASCII в качестве основы для определения последовательностей, закодированных в процентах, эта практика была относительно безвредной; просто предполагалось, что символы и байты отображаются взаимно однозначно и взаимозаменяемы.Однако потребность в представлении символов вне диапазона ASCII быстро росла, и схемы и протоколы URI часто не обеспечивали стандартных правил для подготовки символьных данных для включения в URI. В результате веб-приложения начали использовать различные многобайтовые кодировки, кодировки с отслеживанием состояния и другие несовместимые с ASCII кодировки в качестве основы для процентного кодирования, что привело к неоднозначности и трудностям надежной интерпретации URI.
Например, многие схемы и протоколы URI, основанные на RFC 1738 и 2396, предполагают, что символы данных будут преобразованы в байты в соответствии с некоторой неопределенной кодировкой символов до того, как будут представлены в URI незарезервированными символами или байтами с процентной кодировкой.Если схема не позволяет URI предоставлять подсказку о том, какая кодировка использовалась, или если кодировка конфликтует с использованием ASCII для процентного кодирования зарезервированных и незарезервированных символов, то URI не может быть надежно интерпретирован. Некоторые схемы вообще не учитывают кодирование и вместо этого просто предлагают, чтобы символы данных отображались непосредственно на символы URI, что оставляет на усмотрение реализации решение о том, следует ли и как кодировать символы данных в процентах, которые не входят ни в зарезервированные, ни в незарезервированные наборы.
_
`
{
|
}
~
% 0A
или % 0D
или % 0D% 0A
% 20
%
%
% % 2D
% 2E
% 3C
% 3E
% 5C
% 5E
%
% % 7B
% 7C
% 7D
% 7E
[Содержание]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[ следующий ]
mailto: debian at tmail dot plala dot or dot jp (удаленный DD)
!
*
'
(
)
;
:
@
и
=
+
$
,92 9
#
[
]
A
B
C
D
E
F
I
J
K
L
M
N
O
S
T
U
V
W
X
Y
c
d
e
f
г
h
i
j
k
l
m
q
r
s
t
u
v
w
0
1
2
3
4
5
694
6
-
_
.
~
!
#
$
и
'
(
)
*92 92 :
;
=
?
@
[
]
% 21
% 23
% 24
% 28
% 29
% 2A
% 2B
% 2C
% 2F
10% 3A 3D
% 3F
% 40
% 5B
% 5D
_
`
{
|
}
~
% 0A
или % 0D
или % 0D% 0A
% 20
%
%
% % 2D
% 2E
% 3C
% 3E
% 5C
% 5E
%
% % 7B
% 7C
% 7D
% 7E
Данные произвольных символов иногда кодируются в процентах и используются в ситуациях, не относящихся к URI, например, для программ обфускации паролей или других системные протоколы перевода.
Dec | Hex | Char | Описание | Dec | Hex | Char | Описание | ||||||||||||
128 | 80 | Верхний корпус105 | верхний корпус Чертежи коробки светятся и справа | ||||||||||||||||
129 | 81 | Нижний корпус u с диэрезисом | 193 | C1 | Чертежи коробок светятся и горизонтально | ||||||||||||||
130 | 82 | e с острым углом | 194 | C2 | Чертежи коробки светлые и горизонтальные | ||||||||||||||
131 | 83 | Нижний корпус a с циркумфлексом | 195 | C3 | Правый | ||||||||||||||
132 | 84 | Нижний регистр a с диэрезисом | C4 | Чертежи коробки светлые горизонтальные | |||||||||||||||
133 | 85 | Нижний корпус a с могилой | 197 | C5 | Чертежи коробки светлые вертикальные и горизонтальные | 875 | 86 | Нижняя часть корпуса a с кольцом сверху | 198 | C6 | Нижняя часть корпуса a с тильдой | ||||||||
135 | 87 | Нижняя часть корпуса c с седилем | 199 | Верхняя часть C7 Корпус a с тильдой | |||||||||||||||
136 | 88 | Нижний регистр e с циркумфлексом | 200 | C8 | Чертежи коробки, сдвоенные вверх и справа | ||||||||||||||
137 | 89 | диэрезис | 201 | C9 | Чертежи коробки вдвое вниз и вправо | ||||||||||||||
138 90 105 | 8A | Нижняя часть корпуса e с могилой | 202 | CA | Чертежи коробки, сдвоенные и горизонтальные | ||||||||||||||
139 | 8B | Нижняя часть корпуса i с диэрезисом | 9274 | 203 | Чертежи коробки с двойным вертикальным и горизонтальным расположением | ||||||||||||||
140 | 8C | Нижняя часть корпуса i с циркумфлексом | 204 | CC | Чертежи коробки с двойной вертикальной и правой | ||||||||||||||
141 | 8D | 8D | case dotless i | 205 | CD | Чертежи коробки двойная горизонтальная | |||||||||||||
142 | 8E | Верхняя часть A с диэрезисом | 206 | CE | 100 горизонтальная | чертежи коробки двойная | 143 | 8F | Верхняя часть A с кольцом сверху | 20 7 | CF | Знак валюты | |||||||
144 | 90 | Верхний корпус E с острым концом | 208 | D0 | Мужской порядковый указатель | 91 | 145 | ae | 209 | D1 | Женский порядковый указатель | ||||||||
146 | 92 | Верхняя часть корпуса AE | 210 | D2 | верхняя часть корпуса E с окантовкой | Нижняя часть корпуса o с циркумфлексом | 211 | D3 | Верхняя часть корпуса E с диэрезисом | ||||||||||
148 | 94 | Нижняя часть корпуса с диэрезисом | 212 927 | ||||||||||||||||
149 | 95 | Нижний регистр o с могилой | 213 | D5 | |||||||||||||||
150 | 96 | Нижняя часть корпуса u с циркумфлексом | 214 | D6 | Верхняя часть корпуса I с острым углом | ||||||||||||||
9104 151 | |||||||||||||||||||
9104 | 215 | D7 | Верхний корпус I с циркумфлексом | ||||||||||||||||
152 | 98 | Верхний корпус I с точкой над | 216 | D8 | D8 | верхний корпус | 153 | 99 | Верхняя часть корпуса O с диэрезисом | 217 | D9 | Чертежи коробки светятся и влево | |||||||
154 | 9A | 9A | DA 905 DA 905 верхняя часть с диаметром | Чертежи коробки с подсветкой вниз и вправо | |||||||||||||||
155 | 9B | Нижний регистр o wi ход | 219 | DB | Полный блок | ||||||||||||||
156 | 9C | Знак фунта | 220 | DC | Нижний полублок | ||||||||||||||
верхний Корпус O с ходом | 221 | DD | Сломанный стержень | ||||||||||||||||
158 | 9E | Верхний корпус S с седилем | 222 | DE | Grave | Grave | 9F | Нижний корпус s с седилем | 223 | DF | Верхний полублок | ||||||||
160 | A0 | Нижний корпус с острым | 224 E | 224 O с острым углом | |||||||||||||||
161 | A1 | Нижний корпус i с острым углом | 225 | E1 | Острый нижний корпус s | ||||||||||||||
162 | A2 | Нижний корпус o с острым концом | 226 | E2 | Верхний корпус O с круговым флексом | ||||||||||||||
9104 163 | 227 | E3 | Верхний корпус O с могилой | ||||||||||||||||
164 | A4 | Нижний корпус n с тильдой | 228 | E4 | |||||||||||||||
165 | A5 | Верхний корпус N с тильдой | 229 | E5 | Верхний корпус O с тильдой | ||||||||||||||
166 | A6 | A6 | E Верхний корпус | Micro sign | |||||||||||||||
167 | A7 | Нижний регистр g с breve | 231 | E7 90 105 | |||||||||||||||
168 | A8 | Обратный вопросительный знак | 232 | E8 | Знак умножения | ||||||||||||||
169 | A9 | корпус U с острым углом | |||||||||||||||||
170 | AA | без знака | 234 | EA | верхний корпус U с циркумфлексом | ||||||||||||||
171 | AB | 104 | половинная фракция Vulgar | EB | Верхняя часть корпуса U с могилой | ||||||||||||||
172 | AC | Вульгарная фракция одна четверть | 236 | EC | Нижняя часть корпуса I с могилой | ||||||||||||||
173 Перевернутый восклицательный знак | 237 | ED | Нижний регистр y с di aeresis | ||||||||||||||||
174 | AE | Левая кавычка с двойным углом | 238 | EE | Macron | ||||||||||||||
175 | AF | двойная кавычка вправо- | EF | Острый акцент | |||||||||||||||
176 | B0 | Светлый оттенок | 240 | F0 | Мягкий дефис | ||||||||||||||
177 | Знак плюс-минус | ||||||||||||||||||
178 | B2 | Темный оттенок | 242 | F2 | |||||||||||||||
179 | B3 | светлый короб | Вульгарная фракция три четверти | ||||||||||||||||
180 | B4 901 05 | Чертежи коробки светлые вертикально и слева | 244 | F4 | Знак Pilcrow | ||||||||||||||
181 | B5 | Верхний корпус A с острым углом | 245 | F5 | 182 | B6 | Верхний кожух A с циркумфлексом | 246 | F6 | Знак деления | |||||||||
183 | B7 | Верхний кожух | |||||||||||||||||
184 | B8 | Знак авторских прав | 248 | F8 | Знак градуса | ||||||||||||||
185 | B9 | Чертежи коробки 10, вертикальный и левый | 9104 9104 Диаэрезис | ||||||||||||||||
186 | BA | Чертежи коробок двойные вертикальные al | 250 | FA | Средняя точка | ||||||||||||||
187 | BB | Чертежи в рамке вдвое ниже и влево | 251 | FB | Верхний индекс | Чертежи на коробках, сдвоенные вверх и влево | 252 | FC | Три верхних индекса | ||||||||||
189 | BD | Центровой знак | 253 | FD два | FD | Знак йены | 254 | FE | Черный квадрат | ||||||||||
191 | BF | Чертежи на коробках светятся вниз и влево | 255 | FF | . |
---|