Różnica między ASCII, a Unicode

0

Czy dobrze rozumiem różnice między znakami ascii, a unicode? Ascii zawiera mniej znaków, a unicode to jest to samo co ascii tyle, że zawiera znacznie więcej znaków?

4

mniej więcej, UTF-8 jest wstecznie kompatybilny z ASCII. ASCII to amerykański system kodowania znaków, jeden z podzbiorów UTF-8
wystarczyło zajrzeć do wikipedii

0

Właśnie zajrzałem do Wikipedii i doszedłem do wniosku, że taka jest różnica między Ascii a Unicode o której napisałem wyżej.

5

ASCII to kodowanie 1-bajtowe. 128 znaków podstawowych i sterujących (0..7F) + 128 znaków zależnych od strony kodowej. Taka zaszłość z poprzedniej epoki.
Unicode to kodowanie wielobajtowe. Jest UTF-8 kompatybilny w podstawowym zakresie z ASCII jak i inne, pozwalające określić każdy znak z każdego używanego w świecie alfabetu. Różnią się kodowaniem bo, IMHO, UTF-8 najszczęśliwszym rozwiązaniem to nie jest.

Ale oczywiście można to spłaszczyć do stwierdzenia że Unicode ma więcej znaków niż ASCII.

3

ASCII to system kodowania znaków. Unicode to zbiór znaków z przypisanymi numerami, ale Uncode nie jest kodowaniem. Standard Unicode definiuje parę możliwych systemów kodowania znaków:

  • UTF-8, który jest nadzbiorem ASCII, znaczy to tyle, że każdy tekst zapisany w ASCII jest poprawnym tekstem zapisanym jako UTF-8
  • UTF-EBCDIC, który jest nadzbiorem EBCDIC, takiego kodowania, które czeka w piekle na ludzi, którzy mylą kodowanie z systemem znaków
  • UTF-16 będący rozszerzeniem UCS-2 jak się okazało, że 2 bajty nie wystarczą na zapis wszystkich znaków w Unicode. UTF-16 jest używany przez Javę oraz produkty MS jako domyślny system kodowania.
  • UTF-32 będący technicznie "najprostszym" systemem kodowania Unicode, gdzie każdy codepoint jest zapisywany jako 4 bajty, przez co marnujemy mnóstwo miejsca, ale np. iteracja po takim ciągu jest zdecydowanie prostsza niż w innych kodowaniach
2

Myślę, że ten 30 minutowy wykład z PyCon'a dobrze tłumaczy kwestie różnicy unicode vs utf vs ascii :

0
sajek587 napisał(a):

Czy dobrze rozumiem różnice między znakami ascii, a unicode? Ascii zawiera mniej znaków, a unicode to jest to samo co ascii tyle, że zawiera znacznie więcej znaków?

Drogi przyjacielu sajek587, ASCII to wizualna tablica, reprezentująca wartości jednego bajta na ekranie komputera za pomocą jednego znaku. Z powodów praktycznych syganły liczono parzyście i tak też je zwiększano, aż umówiono się na jednostkę porcji informacji 2^3 = 8 bitów, zebranych pod nazwą bajta. Bajt taki może przyjąć wartości od 0 do 255, a właściwie ma 256 stanów, a znaki i zakres nadajecie wy. W 8 bitach można zakodować 256 porcji informacji i taki rozmiar ma właśnie tablica ASCII. Znalazły się tam takie symbole jak: małe litery, duże, cyfry i dopełnione to zostało znakami innymi, tzw specjalnymi typu czarny pik i inne. W ten sposób, za pomocą tablicy ASCII zapisuje się i przetwarza wszystkie dane na komputerze. Wszystkie pliki zapisuje się tylko za pomocą 256 różnych znaków zdefiniowanych jako tablica ASCII. Cała pamięć RAM wypełniona jest tablicą ASCII z prostego powodu - jest to tablica reprezentująca stany najmniejszej ilości porcji informacji dla komputerów linii x86.

Unicode jest już bardziej tym co Mazovia - jest to pewnego rodzaju program komputerowy, który tak jak inne pełni swoją funkcję. Jego zadaniem jest akurat umożliwienie innym użytkownikom >> posługujących się językami innymi niż angielski << wprowadzania znaków nie znajdujących się w tablicy ASCII. Gdyby mieć dzisiejsze doświadczenie, może wystarczyłoby zwiększyć ilość bitów w bajcie i zakodować te wszystkie znaki w jednej tablicy ASCII.

1 użytkowników online, w tym zalogowanych: 0, gości: 1