Каква е разликата между ASCII и Unicode текст?

Каква е разликата между ASCII и Unicode текст?

ASCII и Unicode са и двата стандарта, които се отнасят до цифровото представяне на текст, по -специално символи, които съставят текст. Двата стандарта обаче са значително различни, като много свойства отразяват съответния им ред на създаване.





Америка срещу Вселената

Американският стандартен код за обмен на информация (ASCII), не е изненадващо, обслужва американската публика, като пише на английска азбука. Той се занимава с букви без акцент, като A-Z и a-z, плюс малък брой пунктуационни символи и контролни знаци.





По -специално, няма начин да се представят заемни думи, приети от други езици, като напр кафе в ASCII, без да ги англицизирате, като замествате акцентирани знаци (напр. кафене ). Локализираните разширения на ASCII са разработени, за да отговорят на нуждите на различни езици, но тези усилия затрудняват оперативната съвместимост и очевидно разширяват възможностите на ASCII.





За разлика от това, универсалният кодиран набор от символи (Unicode) се намира в противоположния край на скалата за амбиции. Unicode се опитва да се погрижи за възможно най -много световни системи за писане, доколкото обхваща древните езици и любимия на всички набор от изразителни символи, емотикони.

Набор от символи или кодиране на знаци?

С прости думи, набор от символи е селекция от знаци (например A-Z), докато кодирането на знаци е съпоставяне между набор от знаци и стойност, която може да бъде представена цифрово (напр. A = 1, B = 2).



Стандартът ASCII е ефективно и двата: той дефинира набора от символи, които представлява, и метод за съпоставяне на всеки знак с числова стойност.

Обратно, думата Unicode се използва в няколко различни контекста, за да означава различни неща. Можете да мислите за това като за всеобхватен термин, като ASCII, за да се отнася до набор от символи и редица кодировки. Но тъй като има няколко кодировки, терминът Unicode често се използва за обозначаване на цялостния набор от знаци, а не за това как са картографирани.





Размер

Поради обхвата си, Unicode представлява много повече символи от ASCII. Стандартният ASCII използва 7-битов диапазон за кодиране на 128 различни персонажи . Unicode, от друга страна, е толкова голям, че трябва да използваме различна терминология, само за да говорим за това!

Unicode обслужва 1,111,998 адресируеми кодови точки. Кодова точка е приблизително аналогична на място, запазено за знак, но ситуацията е много по -сложна от тази, когато започнете да се задълбочавате в детайлите!





По -полезно сравнение е колко скриптове (или системи за писане) се поддържат в момента. Разбира се, ASCII обработва само английската азбука, по същество латинската или римската писменост. Версията на Unicode, произведена през 2020 г., отива много по -далеч: тя включва поддръжка за общо 154 скрипта.

Съхранение

7-битовият диапазон на ASCII означава, че всеки знак се съхранява в един 8-битов байт; резервният бит не се използва в стандартен ASCII. Това прави изчисленията на размера тривиални: дължината на текста, в знаци, е размерът на файла в байтове.

Можете да потвърдите това със следната последователност от команди bash. Първо създаваме файл, съдържащ 12 букви текст:

как да изтрия календарни събития iphone
$ echo -n 'Hello, world' > foo

За да проверим дали текстът е в кодиране ASCII, можем да използваме файл команда:

$ file foo
foo: ASCII text, with no line terminators

И накрая, за да получим точния брой байтове, които файлът заема, използваме състояние команда:

$ stat -f%z foo
12

Тъй като стандартът на Unicode се занимава с много по -голям диапазон от знаци, Unicode файл естествено заема повече място за съхранение. Колко точно зависи от кодирането.

Повтарянето на същия набор от команди от преди, използвайки знак, който не може да бъде представен в ASCII, дава следното:

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

Този единичен знак заема 3 байта в Unicode файл. Обърнете внимание, че bash автоматично създаде UTF-8 файл, тъй като ASCII файл не може да съхранява избрания символ (€). UTF-8 е най-често срещаното кодиране на символи за Unicode; UTF-16 и UTF-32 са две алтернативни кодировки, но те се използват далеч по-малко.

UTF-8 е кодиране с променлива ширина, което означава, че използва различни количества памет за различни кодови точки. Всяка кодова точка ще заема между един и четири байта, с намерението, че по-често срещаните знаци изискват по-малко място, осигурявайки вид вградено компресиране. Недостатъкът е, че определянето на изискванията за дължина или размер на дадена част от текста става много по -сложно.

ASCII е Unicode, но Unicode не е ASCII

За обратна съвместимост първите 128 кодови точки на Unicode представляват еквивалентните ASCII символи. Тъй като UTF-8 кодира всеки от тези символи с един байт, всеки ASCII текст също е UTF-8 текст. Unicode е супермножество на ASCII.

Както е показано по -горе, много Unicode файлове не могат да се използват в ASCII контекст. Всеки знак, който е извън границите, ще бъде показан по неочакван начин, често със заместени знаци, които са напълно различни от тези, които са били предназначени.

Модерна употреба

За повечето цели ASCII до голяма степен се счита за наследствен стандарт. Дори в ситуации, които поддържат само латинския скрипт-където пълната подкрепа за сложността на Unicode не е необходима, например-обикновено е по-удобно да се използва UTF-8 и да се възползва от неговата ASCII съвместимост.

бутонът на контролера xbox one не работи

По-специално уеб страниците трябва да бъдат запазени и предадени с помощта на UTF-8, който е по подразбиране за HTML5. Това е в контраст с по -ранната мрежа, която по подразбиране се занимаваше с ASCII, преди да бъде заменена от Latin 1.

Стандарт, който се променя

Последната ревизия на ASCII е извършена през 1986 г.

За разлика от това, Unicode продължава да се актуализира всяка година. Редовно се добавят нови скриптове, герои и по -специално нови емотикони. Само с малка част от тях, пълният набор от символи вероятно ще расте и расте в обозримо бъдеще.

Свързани: 100 -те най -популярни обяснени емоджита

ASCII срещу Unicode

ASCII изпълняваше своята цел в продължение на много десетилетия, но сега Unicode го замени ефективно за всички практически цели, различни от наследените системи. Unicode е по -голям и следователно по -изразителен. Той представлява глобални усилия за сътрудничество и предлага далеч по -голяма гъвкавост, макар и за сметка на известна сложност.

Дял Дял Туит електронна поща Какво е ASCII текст и как се използва?

Текстът ASCII изглежда загадъчен, но има много приложения в интернет.

Прочетете Напред
Свързани теми
  • Обяснена технология
  • Emojis
  • Жаргон
  • Уеб култура
  • Unicode
За автора Боби Джак(58 статии са публикувани)

Боби е ентусиаст на технологиите, който работи като софтуерен разработчик в продължение на почти две десетилетия. Той е запален по игрите, работи като редактор на рецензии в Switch Player Magazine и е потопен във всички аспекти на онлайн издателството и уеб разработката.

Още от Боби Джак

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате