ANSI i Unicode

Anonim

ANSI vs Unicode

ANSI i Unicode to dwa kodowania znaków, które w pewnym momencie były powszechne. Użycie jest również główną różnicą między tymi dwoma, ponieważ ANSI jest bardzo stary i jest używany przez systemy operacyjne, takie jak Windows 95/98 i starsze, podczas gdy Unicode jest nowszym kodowaniem, które jest używane przez wszystkie dzisiejsze systemy operacyjne. ANSI miał wiele ograniczeń, które nie były wyraźnie widoczne na wczesnych etapach jego stosowania, ale stało się boleśnie jasne, gdy komputery zaczęły rozprzestrzeniać się na całym świecie.

Główną wadą ANSI jest użycie wielu stron kodowych, w zależności od używanego języka; jest jeden dla języka angielskiego (znany jako łacina z Europy Zachodniej), grecki, turecki, hebrajski, arabski i wiele innych. Nie ma problemu, gdy wszystkie komputery, które uzyskują dostęp do danych, używają tej samej strony kodowej, ale gdy używane są różne strony kodowe, odczytane dane nie będą takie same jak zapisane dane. Może to spowodować uszkodzenie danych, a nawet awarie programu w niektórych scenariuszach.

Powodem, dla którego ANSI nie może się pomieścić, jest użycie tylko 8 bitów do przedstawienia każdego punktu kodowego. Ta szerokość jest stała i ma tylko 256 różnych kombinacji. Dla porównania, kod Unicode wykorzystuje maksymalnie 32 bity dla każdego punktu kodowego; używane w stałej szerokości w UTF-32. Ale ponieważ użycie czterech bajtów dla każdego znaku jest tak wielką stratą przestrzeni, kodowanie o zmiennej szerokości jest stosowane w UTF-8 i UTF-16, aby zaoszczędzić miejsce.

Ponieważ Unicode jest nowszym standardem, oczekuje się, że starsze systemy operacyjne mogą go nie obsługiwać. Mimo że punkty kodowania UTF-8 i ANSI są prawie identyczne, starsze systemy operacyjne, takie jak Windows 95, nie mogą z nim pracować. Dlatego programy korzystające z Unicode nie będą mogły poprawnie działać w tych systemach operacyjnych. W odniesieniu do przeciwnego działania lub uruchamiania programów kodowanych ANSI na nowszych systemach operacyjnych jest to możliwe, ponieważ istnieją mechanizmy do konwersji między ANSI i Unicode. Należy pamiętać, że konwersja dodaje trochę nakładu pracy związanej z przetwarzaniem. To może nie być znaczące, biorąc pod uwagę dzisiejsze komputery, ale wciąż warto zwrócić uwagę na poprawę wydajności programu.

Streszczenie:

1. ANSI to bardzo stare kodowanie znaków, a standardem jest obecnie Unicode 2. ANSI używa różnych stron dla różnych języków, podczas gdy Unicode nie 3. ANSI używa kodowania o stałej szerokości, podczas gdy Unicode może używać zarówno stałej, jak i zmiennej szerokości 4. Programy Unicode nie działają na starszych systemach 5. Programy ANSI są wolniejsze niż programy Unicode na obecnych komputerach