Чем отличается стандарт unicode от кодировки ascii

Чем отличается стандарт unicode от кодировки ascii

Кодирование текста: ASCII и Unicode (UTF-16)

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

Память компьютера — это последовательность битов. Бит — минимальная единица информации, которая может хранить два значения: ноль или единицу. Т.е. все данные, которые может выдавать компьютер (числа, текст, аудио, видео) — это последовательность нулей и единиц.

Бит слишком малая единица. Поэтому биты объединяются в байты. В одном байте восемь бит. Каждый байт имеет свой адрес. Именно байт является минимальной единицей, к которой может обратиться процессор — процессор не может обращаться к отдельным битам, только через соответствующие байты. Давайте посмотрим на небольшой участок памяти компьютера:

01001000 01000101 01001011 01001011 01001111 00100001

Сверху показаны адреса байтов, а снизу — значения, хранящиеся в данных адресах. В реальности не существует таких адресов, так как современные компьютеры работают с огромными адресными пространствами. Адреса в современных компьютерах записываются вот так: 0x01328921. Адреса записываются в шестнадцатеричном формате.

В одном байте может храниться 256 значений — 28 = 256. Диапазон значений: от нуля до 255 (для беззнаковых чисел), или от -128 до 127 (для чисел со знаком). В шестнадцатеричной форме максимальное значение байта — 0xff. Обратите внимание на удобство использования шестнадцатеричной системы счисления: для записи любого однобайтного значения требуется две цифры. Посмотрим на диапазоны однобайтного числа во всех трёх системах счисления:

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

01001000 01000101 01001011 01001011 01001111 00100001 // двоичная (бинарная) форма

72 69 76 76 79 33 // десятичная форма

0x48 0x45 0x4b 0x4b 0x4f 0x21 // шестнадцатеричная форма

Компьютеру удобнее использовать бинарную форму, а нам — шестнадцатеричную, или десятичную.

Чтобы представить текст числами, каждой букве присваивают числовое значение — кодируют значения букв. Присвоив всем буквам уникальное значение, мы получим кодировку (character set, endoding). Но использовать свою кодировку нет никакого смысла — вы сможете использовать её только в своей программе. На данный момент наибольшее распространение получила кодировка ASCII.

Первоначально один символ в кодировке ASCII занимал 7 бит. Но когда распространение получил 8-битный байт (да, существовали байты разных размеров), то ASCII была расширена до восьми бит. 7-битная кодировка в два раза меньше восьмибитной: 27=128

Давайте вернёмся к рассмотренной ранее последовательности байтов, и попробуем значению каждого поставить в соответствие код из ASCII:

01001000 01000101 01001011 01001011 01001111 00100001 // двоичная (бинарная) форма

72 69 76 76 79 33 // десятичная форма

H E L L O ! // символы ASCII

О, чудо! У нас получился текст "HELLO!"

Компьютер видит всего лишь последовательность байт, к которым он может обратиться по их адресам. Мы можем видеть как простые числа, так и текст, если смотреть на эти числа в кодировке ASCII.

Расширенная кодировка ASCII (extended ASCII)

С появлением восьмибитной кодировки, в ASCII смогли закодировать и другие алфавиты. Расширенных кодировок ASCII много — существуют версии для многих национальных алфавитов. При этом первая половина кодировки (значения от нуля до 127) везде одинаковая.

Русский алфавит (кириллица) закодирован в кодировке с названием windows-1251. Ещё одна популярная версия ASCII — windows-1252 — это кодировка для западноевропейских языков (в ней закодированы буквы специфические для французского и немецкого алфавитов). Кстати, текст, который вы сейчас читаете, закодирован в windows-1251.

Нам не важно, как закодированы русские буквы (да и английские тоже) в windows-1251 — не нужно знать конкретные значения. Если необходимо, можете найти полный список значений символов для windows-1251 в поисковиках.

Кодирование цифр в тексте

На практике не нужно знать закодированные значения букв. Но в то же время нужно обязательно запомнить закодированные значения цифр. В ASCII цифры имеют коды с 48 до 57. 48 — ноль, 49 — единица . 57 — девять. Напоминаю, что первые 128 значений одинаковы во всех кодировках, поэтому и коды цифр везде совпадают. И это, скажу я вам, очень здорово. Для чего нужно знать коды цифр, и как это связано с созданием игр?

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

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

Сначала пользователю нужно вывести символ 0. Для этого потребуется использовать закодированное значение этого символа — 48. Затем пользователю нужно вывести символ 5, код которого — 53. Здесь видна интересная особенность: код символа цифры отличается от фактического значения на 48. Поэтому для однозначных (и только для однозначных) чисел мы можем использовать вот такой код:

int var = GetUnitNumber(); // узнать количество юнитов

char output = var+48;

Теперь можно вывести переменную output на экран. Только осталось решить одну проблему: в реальных ситуациях очень редко используются однозначные числа. Например, в Company of heroes у игрока в подчинении находятся в среднем больше 15 отрядов, в Age of Empires — больше 50. В других играх ситуация аналогичная. В шутерах может потребоваться выводить количество патронов и здоровья (значения которых практически всегда больше 9). Конечно же, и при создании своей игры нам нужно будет выводить многозначные числа. Вывод многозначных чисел мы рассмотрим в следующем уроке, а сейчас вернёмся к рассмотрению кодировок.

Кодировка (encoding) Юникод — Unicode

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

Читайте также:  Значок луны на айфоне что это

Для решения этой (и некоторых других) проблемы в начале девяностых была создана кодировка Юникод(Unicode). Первоначально все символы юникода занимали два байта. Соответственно, в unicode можно было закодировать 216 = 65536 значений. Затем кодовое пространство было расширено до более чем миллиона символов. В результате этого появилось несколько представлений юникода.

Наиболее популярными представлениями юникода являются два: UTF-8 — используется в интернете и UTF-16 — используется в Windows (Windows XP, Windows Vista, Windows 7).

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

Существует две версии UTF-16: UTF-16LE (little-endian) — кодировка с обратным порядком байтов и UTF-16BE (big-endian) — кодировка с прямым порядком байтов. В Windows, конечно же, используется UTF16-LE.

Код символов в юникоде обозначается так: U+hhhh (четыре шестнадцатеричных цифры, h — от hexadecimal — шестнадцатеричный). Например, U+221A — символ квадратного корня — √.

Часть символов в UTF-16 кодируются двумя байтами (первые 63 тысячи). Остальные символы кодируются суррогатными парами. Так как это не слишком важно для создания игр, то я не буду останавливаться на суррогатных парах подробно.

В UTF-8 первые 128 символов кодируются одним байтом. Остальные символы могут кодироваться несколькими байтами (от двух до четырёх).

И ещё один момент (самый важный): в юникод закодированы все символы всех современных и многих мёртвых письменностей плюс знаки из различных областей науки и культуры (математические и экономически символы, нотные знаки и многое другое). Именно по этой причине и нужно использовать юникод.

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

Кодирование текста в Microsoft Windows (Windows XP, Windows Vista, Windows 7)

В современных версиях Windows существует два способа представления текста: UTF-16 и кодовые страницы (в основном это восьмибитные кодировки). Основной способ — юникод. Кодовые страницы нужны для совместимости со старыми приложениями (в Windows 95, Windows 98 — в основном использовалась ASCII). Кроме того, юникод не понимает одна очень важная программа — консоль.

Пусть вас не смущает новый термин — кодовая страница (code page). В windows так называются все кодировки (character sets или encodings). Т.е. понятие кодировка равнозначно кодовой странице.

Сразу сделаю замечание, которое лучше запомнить. В Windows есть чёткое разделение: вот юникод (UTF-16LE), а вот все остальные кодировки. И юникод, и остальные кодировки в Windows называются кодовыми страницами, но этот термин (кодовые страницы) я буду применять ко всем кодировкам за исключением юникода.

Когда мы писали консольные программы, вывод текста осуществлялся с помощью кодовой страницы windows-1252. Именно поэтому нам приходилось вызывать setlocale (она меняет кодовую страницу на windows-1251):

Эта функция меняет локальность.

Locale (местная специфика) — локальность

В Windows есть такое понятие как Locale. Здесь я не совсем верно использую кальку этого слова — локальность, но, на мой взгляд, она довольно ёмкая, чтобы вместить весь смысл понятия Locale. Locale переводится как местные особенности. Т.е. это какие-то параметры используемы в данном конкретном месте (регионе, стране). setlocale как раз и меняет эти особенности:

В данном вызове локальность меняется на российскую. Поэтому Windows может использовать наши местные особенности: представление даты и времени, систему измерения, валюту и, конечно же, кодовую страницу.

Первый параметр этой функции говорит, какие категории местных особенностей можно изменить. Можно изменить только кодовую страницу (LC_CTYPE), можно формат представления даты и времени (LC_TIME), а можно изменить и все категории (LC_ALL, all — всё).

Возвращаемся к кодировкам.

Одновременно может использоваться только одна кодовая страница, при этом с символами кодовой страницы в программе можно использовать и юникод, так как юникод стоит особняком от всех остальных кодовых страниц. Старайтесь в своих программах всегда использовать юникод. Кодовые страницы имеет смысл использовать только в консоли.

Дата добавления: 2014-01-06 ; Просмотров: 2554 ; Нарушение авторских прав?

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Каждый компьютер имеет свой набор символов, который он реализует. Такой набор содержит 26 заглавных и строчных букв, цифры и специальные символы (точка, пробел и тд). Символы при переводе в целые числа имеют название кодами. Были разработаны стандарты, что бы компьютеры имели одинаковые наборы кодов.

Стандарт ASCII

ASCII (American Standart Code for Inmormation Interchange) — американский стандартный код для обмена информацией. Каждый символ ASCII имеет 7 битов, поэтому максимальное число символов — 128 (таблица 1). Коды от 0 до 1F являются управляющими символами, которые не печатаются. Множество непечатных символов ASCII нужны для передачи данных. К примеру послание может состоять из символа начала заголовка SOH, самого заголовка и символа начала текста STX, самого текста и символа конца текста ETX, и символ конца передачи EOT. Однако данные по сети передаются в пакетах, которые сами отвечают за начало передачи и конец. Так что непечатные символы почти не используются.

Таблица 1 — таблица кодов ASCII

Число Команда Значение Число Команда Значение
NUL Пустой указатель 10 DLE Выход из системы передачи
1 SOH начало заголовка 11 DC1 Управление устройством
2 STX Начало текста 12 DC2 Управление устройством
3 ETX Конец текста 13 DC3 Управление устройством
4 EOT Конец передачи 14 DC4 Управление устройством
5 ACK Запрос 15 NAK Неподтверждение приема
6 BEL Подтверждение приема 16 SYN Простой
7 BS Символ звонка 17 ETB Конец блока передачи
8 HT Отступ назад 18 CAN Отмета
9 LF Горизонтальная табуляция 19 EM Конец носителя
A VT Перевод строки 1A SUB Подстрочный индекс
B FF Вертикальная табуляция 1B ESC Выход
C CR Перевод страницы 1C FS Разделитель файлов
D SO Возврат каретки 1D GS Разделитель группы
E SI Переключение на дополнительный регистр 1E RS Разделитель записи
SI Переключение на стандартный регистр 1F US Разделитель модуля
Читайте также:  Как включить siri ios 12
Число Символ Число Символ Число Символ Число Символ Число Символ Число Символ
20 пробел 30 40 @ 50 P 60 . 70 p
21 ! 31 1 41 A 51 Q 61 a 71 q
22 32 2 42 B 52 R 62 b 72 r
23 # 33 3 43 C 53 S 63 c 73 s
24 φ 34 4 44 D 54 T 64 d 74 t
25 % 35 5 45 E 55 И 65 e 75 и
26 & 36 6 46 F 56 V 66 f 76 v
27 37 7 47 G 57 W 67 g 77 w
28 ( 38 8 48 H 58 X 68 h 78 x
29 ) 39 9 49 I 59 Y 69 i 70 y
2A 3A ; 4A J 5A Z 6A j 7A z
2B + 3B ; 4B K 5B [ 6B k 7B <
2C 3C 4E N 5E 6E n 7E
2F / 3F g 4F O 5F _ 6F o 7F DEL

Стандарт Unicode

Предыдущая кодировка отлично подходит для английского языка, однако для других языков она не удобная. К примеру в немецком языке есть умляуты, а в французском надстрочные знаки. Некоторые языки имеют совершенно разные алфавиты. Первой попыткой расширения ASCII был IS646, который расширял предыдущую кодировку еще на 128 символов. Добавлены были латинские буквы со штрихами и диакритическими знаками, и получил название — Latin 1. Следующая попытка была IS 8859 — которые содержал кодовую страницу. Были еще попытки расширений, но это все было не универсальным. Была создана кодировка UNICODE (is 10646). Идея кодировка в том, что бы приписать каждому символу единое постоянное 16-битное значение, которое называется — указателем кода. Всего получается 65536 указателей. Для экономии места использовали Latin-1 для кодов 0 -255, легко изменяя ASII в UNICODE. Такой стандарт решил много проблем, однако не все. В связи с поступлением новых слов, к примеру для японского языка нужно увеличивать количество терминов где-то на 20 тыс. Также нужно включить шрифт брайля.

могу ли я знать точную разницу между Unicode и ASCII?

ASCII имеет в общей сложности 128 символов (256 в расширенном наборе).

есть ли спецификация размера для символов Unicode?

7 ответов

ASCII определяет 128 символов, которые сопоставляются с числами 0-127. Unicode определяет (меньше) 2 21 символы, которые аналогично сопоставляются с числами 0-2 21 (хотя не все номера в настоящее время назначены, а некоторые зарезервированы).

Unicode является надмножеством ASCII, и числа 0-128 имеют то же значение в ASCII, что и в Unicode. Например, число 65 означает "Латинская столица "а"".

потому что символы Юникода не обычно помещается в один 8-битный байт, существует множество способов хранения символов Юникода в байтовых последовательностях, таких как UTF-32 и UTF-8.

понимание почему ASCII и Unicode были созданы в первую очередь помогли мне понять как они на самом деле работают.

ASCII, Origins

как указано в других ответах, ASCII использует 7 бит для представления символа. Используя 7 бит, мы можем иметь максимум 2^7 (= 128) различных комбинаций * . Это означает, что мы можем представить 128 символов.

подождите, 7 биты? Но почему не 1 байт (8 бит)?

последний бит (8-й) используется для избежания ошибок как бит четности. Это было актуально много лет назад.

большинство символов ASCII являются печатными символами алфавита, такими как abc, ABC, 123,?&!, п. Остальные символы например возврата каретки, перевода строки, tab, etc.

смотрите ниже двоичное представление нескольких символов в ASCII:

см. полную таблицу ASCII здесь.

ASCII предназначался только для английского языка.

что? Почему только английский? Так много языков!

потому что центр компьютерной индустрии был в США в это время. Как следствие, им не нужно было поддерживать акценты или другие знаки, такие как á, ü, ç, ñ, и т. д. (также известный как диакритические знаки).

ASCII Extended

некоторые умные люди начали использовать 8-й бит (бит, используемый для четности) для кодирования большего количества символов для поддержки своего языка (например, для поддержки "é", на французском языке). Просто использование одного дополнительного бита удвоило размер исходной таблицы ASCII для отображения до 256 символов (2^8 = 256 символов). И не 2^7, как раньше (128).

имя для этого " ASCII расширено до 8 бит и не 7 бит, как раньше" можно просто назвать "расширенным ASCII"или" 8-битным ASCII".

As @Tom указал в своем комментарии ниже нет такой вещи, как"расширенный ASCII" тем не менее, это простой способ обратиться к этому 8-битному трюку. Существует множество вариантов 8-битной таблицы ASCII, например ISO 8859-1, также называемый ISO Latin-1.

Unicode, The Rise

ASCII Extended решает проблема для языков, которые основаны на латинском алфавите. а как насчет других, которым нужен совершенно другой алфавит? Греческий? Русский? Китайский и тому подобное?

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

вы не можете сохранить текст на жесткий диск как "Unicode". Unicode-это абстрактное представление текста. Вам нужно "закодировать" это абстрактное представление. Вот где кодирование вступает в игру.

кодировки: UTF-8 vs UTF-16 vs UTF-32

ответ делает довольно хорошую работу по объяснению основ:

  • UTF-8 и UTF-16 кодировки переменной длины.
  • в UTF-8 символ может занимать не менее 8 бит.
  • In UTF-16, длина символа начинается с 16 бит.
  • UTF-32-кодировка фиксированной длины в 32 бита.

UTF-8 использует набор ASCII для первых 128 символов. Это удобно, потому что это означает, что текст ASCII также действителен в UTF-8.

  • UTF —8: минимум 8 бит.
  • UTF —16: минимум 16 бит.
  • UTF —32: минимум и максимум 32 бит.

Это очевидно для некоторых, но на всякий случай. У нас есть семь слотов, заполненных либо 0, либо 1 (Двоичный Код). Каждый может иметь две комбинации. Если у нас есть семь мест, мы 2 * 2 * 2 * 2 * 2 * 2 * 2 = 2^7 = 128 комбинаций. Подумайте об этом как о кодовом замке с семью колесами, каждое колесо имеет два номера только.

ASCII имеет 128 кодовых точек, от 0 до 127. Он может поместиться в один 8-битный байт, значения от 128 до 255, как правило, используются для других символов. С несовместимыми выборами, вызывающими страницу код катастрофы. Текст, закодированный на одной кодовой странице, не может быть правильно прочитан программой, которая предполагает или угадывает на другой кодовой странице.

Читайте также:  Как убрать моды в world of tanks

Unicode пришел, чтобы решить эту катастрофу. Версия 1 начиналась с 65536 кодовых точек, обычно закодированных в 16 битах. Later extended в версии 2 до 1,1 млн. кодовых точек. Текущая версия 6.3, используя 110,187 из доступных 1,1 миллиона кодовых точек. Это больше не вписывается в 16 бит.

Кодирование в 16-битах было распространено, когда v2 появился, например, в операционных системах Microsoft и Apple. И языковые среды, такие как Java. Спецификация v2 придумала способ сопоставить эти 1,1 миллиона кодовых точек в 16 бит. Кодировка называется UTF-16, кодировка переменной длины, где одна кодовая точка может принимать 2 или 4 байта. Исходные кодовые точки v1 занимают 2 байта, добавленные-4.

другое кодирование переменной длины, которое очень распространено, используется в операционных системах *nix и инструментах UTF-8, кодовая точка может принимать от 1 до 4 байтов, исходные коды ASCII занимают 1 байт, остальные занимают больше. Единственная кодировка без переменной длины-UTF-32, занимает 4 байта для кодовой точки. Не часто используется, так как это довольно расточительно. Другие одни, как UTF-1 и UTF-7, широко игнорируемый.

проблема с кодировками UTF-16/32 заключается в том, что порядок байтов будет зависеть от конечности машины, которая создала текстовый поток. Поэтому добавьте в микс UTF-16BE, UTF-16LE, UTF-32BE и UTF-32LE.

наличие этих различных вариантов кодирования возвращает катастрофу кодовой страницы в некоторой степени, наряду с горячими дебатами среди программистов, выбор UTF является "лучшим". Их связь с операционной системой по умолчанию в значительной степени рисует линии. Один counter-measure-это определение спецификации, метка порядка байтов, специальная кодовая точка (U+FEFF, пространство нулевой ширины) в начале текстового потока, которая указывает, как кодируется остальная часть потока. Он указывает как кодировку UTF, так и endianess и нейтрален к движку рендеринга текста. К сожалению, это необязательно, и многие программисты заявляют о своем праве опустить его, поэтому несчастные случаи все еще довольно распространены.

ASCII имеет 128 позиций кода, выделенных графическим символам и управляющим символам (управляющим кодам).

Unicode имеет 1,114,112 кодовых позиций. Около 100 000 из них в настоящее время были выделены символам, и многие кодовые точки были сделаны постоянно нехарактерными (т. е. никогда не использовались для кодирования какого-либо символа), и большинство кодовых точек еще не назначены.

единственное, что ASCII и Unicode имеют в общей являются: 1) Они характер коды. 2) 128 первых кодовых позиций Юникода были определены, чтобы иметь те же значения, что и в ASCII, за исключением того, что кодовые позиции символов управления ASCII просто определены как обозначающие символы управления, с именами, соответствующими их именам ASCII, но их значения не определены в Юникоде.

Иногда, однако, Unicode характеризуется (даже в стандарте Unicode!) как "широкий ASCII". Это слоган, который в основном пытается передать идею, что Unicode предназначен для будь универсальная символьный код так же, как когда-то ASCII (хотя репертуар символов ASCII был безнадежно недостаточен для универсального использования), в отличие от использования разных кодов в разных системах и приложениях и для разных языков.

Unicode как таковой определяет только "логический размер" символов: каждый символ имеет кодовый номер в определенном диапазоне. Эти кодовые номера можно представить используя различные кодировки передачи, и внутренне, внутри память, символы Юникода обычно представлены с использованием одного или двух 16-разрядных величин на символ, в зависимости от диапазона символов, иногда с использованием одного 32-разрядного количества на символ.

java обеспечивает поддержку Unicode i.e он поддерживает все Всемирные алфавиты. Следовательно, размер char в java составляет 2 байта. И диапазон от 0 до 65535.

ASCII и Unicode-это две кодировки символов. В основном, это стандарты представления разностных символов в двоичном формате, чтобы их можно было записывать, хранить, передавать и читать на цифровых носителях. Основное различие между ними заключается в том, как они кодируют символ и количество битов, которые они используют для каждого. ASCII первоначально использовал семь битов для кодирования каждого символа. Это было позже увеличено до восьми с расширенным ASCII для решения очевидной неадекватности оригинальный. Напротив, Unicode использует переменную битовую программу кодирования, в которой можно выбрать между 32, 16 и 8-битными кодировками. Использование большего количества битов позволяет использовать больше символов за счет больших файлов, в то время как меньшее количество битов дает вам ограниченный выбор, но вы экономите много места. Использование меньшего количества бит (например, UTF-8 или ASCII), вероятно, будет лучше, если вы кодируете большой документ на английском языке.

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

еще одно важное преимущество Unicode заключается в том, что на максимуме он может вместить огромное количество символов. Из-за этого Unicode в настоящее время содержит большинство письменных языков и все еще есть место и для большего. Это включает в себя типичные слева направо скрипты, такие как английский и даже справа налево скрипты, такие как арабский. Китайский, японский, и многие другие варианты также представлены в Юникоде. Таким образом, Unicode не будет заменен в ближайшее время.

для поддержания совместимости со старым ASCII, который уже широко использовался в то время, Unicode был разработан таким образом, что первые восемь битов соответствовали наиболее популярной странице ASCII. Поэтому, если вы откроете ASCII кодированный файл с Unicode, вы все равно получите правильные символы, закодированные в файле. Это облегчило принятие Юникода, поскольку уменьшило влияние принятия нового стандарта кодирования для тех, кто уже использовал ASCII.

Ссылка на основную публикацию
Фотографии купе в поезде
Интересный фотоотчет о поездке на одном из первых рейсов двухэтажных поездов. Смотрим далее, как все устроено внутри таких двухэтажных вагонов...
Уравнение окружности в полярных координатах
Определение: замкнутая плоская кривая, все точки которой одинаково удалены от данной точки (центра О), лежащей в той же плоскости, что...
Уравнение пучка прямых проходящих через точку
Совокупность прямых, проходящих через некоторую точку, называется пучком прямых с центром в этой точке. Если и - уравнения двух пересекающихся...
Фотография с самым большим разрешением в мире
Представляем вашему вниманию нашу подборку самых больших фотографий в мире. Для их просмотра вам будет необходим FlashPlayer. Его можно скачать...
Adblock detector