kody pseudograficzne ascii. Kodowanie ASCII (amerykański standardowy kod wymiany informacji) - podstawowe kodowanie tekstu dla alfabetu łacińskiego

Według Międzynarodowego Związku Telekomunikacyjnego w 2016 roku z Internetu w miarę regularnie korzystało trzy i pół miliarda ludzi. Większość z nich nawet nie myśli o tym, że jakiekolwiek wiadomości wysyłane za pośrednictwem komputera lub gadżety mobilne, a także teksty wyświetlane na wszelkiego rodzaju monitorach, są w rzeczywistości kombinacjami 0 i 1. Taka reprezentacja informacji nazywa się kodowaniem. Zapewnia i znacznie ułatwia ich przechowywanie, przetwarzanie i przesyłanie. W 1963 roku opracowano amerykańskie kodowanie ASCII, które jest tematem niniejszego artykułu.

Prezentowanie informacji na komputerze

Z punktu widzenia każdego komputera elektronicznego tekst jest zbiorem pojedynczych znaków. Należą do nich nie tylko litery, także te duże, ale także znaki interpunkcyjne i cyfry. Ponadto używane są znaki specjalne „=”, „&”, „(” i spacje.

Zbiór znaków tworzących tekst nazywany jest alfabetem, a ich liczba nazywana jest licznością (oznaczoną jako N). Aby to ustalić, stosuje się wyrażenie N = 2^b, gdzie b jest liczbą bitów lub wagą informacyjną konkretnego symbolu.

Udowodniono, że alfabet o pojemności 256 znaków może reprezentować wszystkie niezbędne znaki.

Ponieważ 256 reprezentuje ósmą potęgę dwójki, waga każdego znaku wynosi 8 bitów.

Jednostką miary składającą się z 8 bitów nazywa się 1 bajt, dlatego zwyczajowo mówi się, że dowolny znak w tekście przechowywanym na komputerze zajmuje jeden bajt pamięci.

Jak przebiega kodowanie?

Wszelkie teksty wprowadzane są do pamięci komputera osobistego za pomocą klawiszy klawiatury, na których zapisywane są cyfry, litery, znaki interpunkcyjne i inne symbole. W Baran są przesyłane w kodzie binarnym, tj. każdy znak jest powiązany ze znanym człowiekowi kodem dziesiętnym od 0 do 255, co odpowiada kodowi binarnemu - od 00000000 do 11111111.

Kodowanie znaków bajtowo-bajtowych umożliwia procesorowi przetwarzającemu tekst dostęp do każdego znaku z osobna. Jednocześnie 256 znaków wystarczy, aby przedstawić dowolną informację symboliczną.

Kodowanie znaków ASCII

Ten skrót w języku angielskim oznacza kod dla wymiana informacji.

Już u zarania komputeryzacji stało się oczywiste, że możliwe jest wymyślenie wielu różnych sposobów kodowania informacji. Aby jednak przenieść informacje z jednego komputera na drugi, konieczne było opracowanie jednolitego standardu. Tak więc w 1963 roku w USA pojawiła się tabela kodowania ASCII. W nim dowolny symbol alfabetu komputerowego jest powiązany z jego numerem seryjnym w reprezentacji binarnej. ASCII był pierwotnie używany tylko w Stanach Zjednoczonych, a później stał się międzynarodowym standardem dla komputerów PC.

Kody ASCII są podzielone na 2 części. Tylko pierwsza połowa tej tabeli jest uważana za standard międzynarodowy. Zawiera znaki o numerach seryjnych od 0 (kodowane jako 00000000) do 127 (kodowane jako 01111111).

Numer seryjny

Kodowanie tekstu ASCII

Symbol

0000 0000 - 0001 1111

Znaki z N od 0 do 31 nazywane są znakami kontrolnymi. Ich funkcją jest „zarządzanie” procesem wyświetlania tekstu na monitorze lub urządzeniu drukującym, wydawaniem sygnału dźwiękowego itp.

0010 0000 - 0111 1111

Znaki od N od 32 do 127 (standardowa część tabeli) - wielkie i małe litery alfabetu łacińskiego, cyfry dziesiąte, znaki interpunkcyjne, a także różne nawiasy, symbole handlowe i inne. Znak 32 reprezentuje spację.

1000 0000 - 1111 1111

Mogą mieć znaki z N od 128 do 255 (alternatywna część tabeli lub strona kodowa). różne opcje, z których każdy ma swój własny numer. Strona kodowa służy do określania alfabetów narodowych innych niż łaciński. W szczególności za jego pomocą odbywa się kodowanie ASCII dla znaków rosyjskich.

W tabeli kodowania są pisane wielką literą i następują po sobie kolejność alfabetyczna, a liczby są w kolejności rosnącej. Zasada ta pozostaje taka sama dla alfabetu rosyjskiego.

Kontroluj znaki

Tablica kodowania ASCII została pierwotnie stworzona do odbierania i przesyłania informacji za pośrednictwem urządzenia, które nie było używane przez długi czas, takiego jak telekopia. W związku z tym do zestawu znaków uwzględniono znaki niedrukowalne, używane jako polecenia sterujące tym urządzeniem. Podobne polecenia były używane w takich metodach przesyłania wiadomości przed komputerem, jak alfabet Morse'a itp.

Najpopularniejszym znakiem dalekopisu jest NUL (00). Jest nadal używany w większości języków programowania do wskazania końca linii.

Gdzie stosowane jest kodowanie ASCII?

Amerykański kod standardowy jest potrzebny nie tylko do wprowadzania informacji tekstowych na klawiaturze. Jest również stosowany w grafice. W szczególności w ASCII Art Maker obrazy różnych rozszerzeń reprezentują spektrum znaków ASCII.

Istnieją dwa rodzaje takich produktów: te, które pełnią funkcję edytorów graficznych poprzez konwersję obrazów na tekst oraz te, które konwertują „rysunki” na grafikę ASCII. Na przykład znanym emotikonem jest świecący przykład kodowanie znaku.

ASCII można także używać podczas tworzenia dokumentu HTML. W takim przypadku możesz wprowadzić określony zestaw znaków, a podczas przeglądania strony na ekranie pojawi się symbol odpowiadający temu kodowi.

ASCII jest również niezbędny do tworzenia wielojęzycznych stron internetowych, ponieważ znaki, które nie są zawarte w określonej tabeli krajowej, są zastępowane kodami ASCII.

Niektóre funkcje

Pierwotnie ASCII był używany do kodowania informacji tekstowych przy użyciu 7 bitów (jeden pozostawiono pusty), ale obecnie działa jako 8 bitów.

Litery znajdujące się w kolumnach znajdujących się powyżej i poniżej różnią się od siebie tylko jednym bitem. Znacząco zmniejsza to złożoność audytu.

Używanie kodu ASCII w pakiecie Microsoft Office

W razie potrzeby ten typ kodowania informacji tekstowych można zastosować w edytorach tekstu firmy Microsoft, takich jak Notatnik i Słowo biurowe. Jednak w tym przypadku korzystanie z niektórych funkcji podczas pisania może być niemożliwe. Na przykład nie będziesz mógł dokonać wyboru pogrubione, ponieważ kodowanie ASCII jedynie zachowuje znaczenie informacji, ignorując je forma ogólna i kształt.

Normalizacja

Organizacja ISO przyjęła standardy ISO 8859. Ta grupa definiuje ośmiobitowe kodowanie dla różnych grup językowych. W szczególności ISO 8859-1 to rozszerzona tabela ASCII dla Stanów Zjednoczonych i krajów Europy Zachodniej. A ISO 8859-5 to tabela używana dla alfabetu cyrylicy, w tym języka rosyjskiego.

Z kilku powodów historycznych Norma ISO 8859-5 był używany bardzo krótko.

W przypadku języka rosyjskiego obecnie stosowane są następujące kodowania:

  • CP866 (strona kodowa 866) lub DOS, które jest często nazywane alternatywnym kodowaniem GOST. Był aktywnie wykorzystywany do połowy lat 90. ubiegłego wieku. W tej chwili praktycznie nie jest używany.
  • KOI-8. Kodowanie zostało opracowane w latach 70. i 80. XX wieku i obecnie jest ogólnie przyjętym standardem dla wiadomości e-mail w sieci RuNet. Jest szeroko stosowany w systemach operacyjnych Unix, w tym Linux. „Rosyjska” wersja KOI-8 nosi nazwę KOI-8R. Ponadto istnieją wersje dla innych języków cyrylicy, takich jak ukraiński.
  • Strona kodowa 1251 (CP 1251, Windows - 1251). Opracowany przez firmę Microsoft w celu zapewnienia obsługi języka rosyjskiego w środowisku Windows.

Główną zaletą pierwszego standardu CP866 było zachowanie znaków pseudograficznych w tych samych pozycjach, co w rozszerzonym ASCII. Umożliwiło to uruchamianie bez modyfikacji programów tekstowych wyprodukowanych za granicą, takich jak słynny Norton Commander. Obecnie CP866 jest używany w programach opracowanych dla systemu Windows, które działają w trybie tekstowym na pełnym ekranie lub w oknach tekstowych, w tym w FAR Manager.

Teksty komputerowe pisane w kodowaniu CP866, w formacie Ostatnio Są dość rzadkie, ale to właśnie ten jest używany w rosyjskich nazwach plików w systemie Windows.

„Unikod”

W tej chwili to kodowanie jest najczęściej stosowane. Kody Unicode są podzielone na obszary. Pierwsza (U+0000 do U+007F) zawiera znaki ASCII z kodami. Następnie następują obszary znaków różnych pism narodowych, a także znaki interpunkcyjne i symbole techniczne. Ponadto niektóre kody Unicode są zarezerwowane na wypadek konieczności dodania w przyszłości nowych znaków.

Teraz już wiesz, że w kodzie ASCII każdy znak jest reprezentowany jako kombinacja 8 zer i jedynek. Dla niespecjalistów te informacje mogą wydawać się niepotrzebne i nieciekawe, ale czy nie chcesz wiedzieć, co dzieje się „w mózgach” Twojego komputera?!

Przypomnijmy kilka faktów, które znamy:

Zbiór symboli, za pomocą których zapisywany jest tekst, nazywa się alfabetem.

Liczba znaków w alfabecie to jego liczność.

Wzór na określenie ilości informacji: N = 2 b,

gdzie N to potęga alfabetu (liczba znaków),

b - liczba bitów (waga informacyjna symbolu).

Alfabet o pojemności 256 znaków pomieści prawie wszystkie niezbędne znaki. Taki alfabet nazywa się wystarczającym.

Ponieważ 256 = 2 8 , wówczas waga 1 znaku wynosi 8 bitów.

Jednostkę miary 8 bitów nadano nazwę 1 bajt:

1 bajt = 8 bitów.

Kod binarny każdego znaku w tekście komputerowym zajmuje 1 bajt pamięci.

W jaki sposób informacja tekstowa jest reprezentowana w pamięci komputera?

Kodowanie polega na przypisaniu każdemu znakowi unikalnego kodu dziesiętnego od 0 do 255 lub odpowiadającego mu kodu binarnego od 00000000 do 11111111. W ten sposób człowiek rozróżnia znaki po ich obrysie, a komputer po kodzie.

Wygoda kodowania znaków bajt po bajcie jest oczywista, ponieważ bajt jest najmniejszą adresowalną częścią pamięci i dlatego procesor może uzyskać dostęp do każdego znaku oddzielnie podczas przetwarzania tekstu. Z drugiej strony 256 znaków to całkiem wystarczająca liczba, aby przedstawić szeroką gamę informacji symbolicznych.

Teraz pojawia się pytanie, jaki ośmiobitowy kod binarny przypisać do każdego znaku.

Oczywiste jest, że jest to kwestia warunkowa, można wymyślić wiele metod kodowania.

Tabela ASCII stała się międzynarodowym standardem dla komputerów PC (czytaj pytanie) (Amerykański standardowy kodeks wymiany informacji).

Tylko pierwsza połowa tabeli to standard międzynarodowy, tj. znaki zawierające cyfry od 0 (00000000), do 127 (01111111).

Numer seryjny

Symbol

00000000 - 00011111


Ich funkcją jest sterowanie procesem wyświetlania tekstu na ekranie lub wydruku, emitowaniem sygnału dźwiękowego, zaznaczaniem tekstu itp.

32 - 127

00100000 - 01111111


128 - 255

10000000 - 11111111


Druga połowa tabeli kodów ASCII, zwana stroną kodową (128 kodów, zaczynając od 10000000, a kończąc na 11111111), może mieć różne warianty, każdy wariant ma swój własny numer.


Należy pamiętać, że w tabeli kodowania litery (duże i małe) są ułożone w kolejności alfabetycznej, a cyfry w kolejności rosnącej. To zachowanie porządku leksykograficznego w układzie symboli nazywa się zasadą sekwencyjnego kodowania alfabetu.


Najpopularniejszym obecnie stosowanym kodowaniem jest Microsoft Windows, w skrócie CP1251.

Od końca lat 90-tych problem standaryzacji kodowania znaków został rozwiązany poprzez wprowadzenie nowego międzynarodowego standardu o nazwie Unicode . Jest to kodowanie 16-bitowe, tj. przydziela 2 bajty pamięci dla każdego znaku. Zwiększa to oczywiście ilość zajmowanej pamięci 2-krotnie. Ale taka tabela kodów pozwala na włączenie do 65536 znaków. Pełna specyfikacja standardu Unicode obejmuje wszystkie istniejące, wymarłe i sztucznie stworzone alfabety świata, a także wiele symboli matematycznych, muzycznych, chemicznych i innych.

Spróbujmy użyć tabeli ASCII, aby wyobrazić sobie, jak słowa będą wyglądać w pamięci komputera.

Słowa

Pamięć

01100110

01101001

01101100

01100101

01100100

01101001

01110011

01101011

Podczas wprowadzania informacji tekstowych do komputera znaki (litery, cyfry, znaki) są kodowane przy użyciu różnych systemów kodowania, które składają się z zestawu tabel kodów znajdujących się na odpowiednich stronach standardów kodowania informacji tekstowych. W takich tabelach każdemu znakowi przypisany jest określony kod numeryczny w formacie szesnastkowym lub system dziesiętny notacje, tj. tablice kodów odzwierciedlają zgodność między obrazami symboli a kodami numerycznymi i są przeznaczone do kodowania i dekodowania informacji tekstowych. Przy wprowadzaniu informacji tekstowej za pomocą klawiatury komputera każdy wprowadzony znak jest kodowany, czyli przetwarzany na kod numeryczny, natomiast w przypadku wyprowadzenia informacji tekstowej na komputerowe urządzenie wyjściowe (wyświetlacz, drukarkę lub ploter) jej obraz jest konstruowany przy użyciu kodu numerycznego charakter. Przypisanie określonego kodu numerycznego do symbolu jest wynikiem porozumienia pomiędzy odpowiednimi organizacjami w różnych krajach. Obecnie nie ma jednej uniwersalnej tabeli kodów pasującej do liter alfabetów narodowych różnych krajów.

Współczesne tablice kodowe obejmują część międzynarodową i krajową, czyli zawierają litery alfabetu łacińskiego i narodowego, cyfry, znaki działania arytmetyczne i interpunkcyjne, symbole matematyczne i kontrolne, symbole pseudograficzne. Międzynarodowa część tabeli kodów oparta na standardzie ASCII (amerykański standardowy kod wymiany informacji), koduje pierwszą połowę znaków w tabeli kodów kodami numerycznymi od 0 do 7 F 16, lub w systemie dziesiętnym od 0 do 127. W tym przypadku przydzielane są kody od 0 do 20 16 (0 - 32 10) klawisze funkcyjne(F1, F2, F3 itd.) klawiatura komputera osobistego. Na ryc. 3.1 pokazuje międzynarodową część tabel kodowych opartych na normie ASCII. Komórki tabeli są numerowane odpowiednio w systemie dziesiętnym i szesnastkowym.

Rysunek 3.1. Międzynarodowa część tabeli kodów (standard ASCII) z numerami komórek przedstawionymi w systemie dziesiętnym (a) i szesnastkowym (b).


Część krajowa tabel kodów zawiera kody alfabetów narodowych, zwana także tabelą zestawów znaków (zestaw znaków).

Obecnie do obsługi liter alfabetu rosyjskiego (cyrylicy) istnieje kilka tablic kodowych (kodowań), które są wykorzystywane przez różne systemy operacyjne, co jest istotna wada a w niektórych przypadkach prowadzi do problemów związanych z operacjami dekodowania wartości symboli numerycznych. W tabeli 3.1 pokazuje nazwy stron kodowych (standardów), na których znajdują się tablice kodów cyrylicy (kodowania).

Tabela 3.1

Jednym z pierwszych standardów kodowania cyrylicy na komputerach był standard KOI8-R. Krajową część tabeli kodów tej normy pokazano na ryc. 3.2.

Ryż. 3.2. Krajowa część tabeli kodów standardu KOI8-R


Obecnie używana jest również tabela kodów znajdująca się na stronie CP866 standardu kodowania informacji tekstowych, który jest używany w systemie operacyjnym MS-DOS lub sesja MS-DOS do kodowania cyrylicy (ryc. 3.3, A).

Ryż. 3.3. Krajowa część tabeli kodów, znajdująca się na stronie CP866 (a) i na stronie CP1251 (b) standardu kodowania informacji tekstowych


Obecnie najczęściej stosowana tabela kodów do kodowania cyrylicy znajduje się na stronie CP1251 odpowiedniego standardu, który jest stosowany w systemach operacyjnych z rodziny Okna firmy Microsoftu(ryc. 3.2, B). We wszystkich prezentowanych tabelach kodów, z wyjątkiem tabeli standardowej Unikod Do zakodowania jednego znaku przydzielanych jest 8 cyfr binarnych (8 bitów).

Pod koniec ubiegłego wieku pojawił się nowy międzynarodowy standard Unikod w którym jeden znak jest reprezentowany jako dwa bajty kod binarny. Zastosowanie tego standardu jest kontynuacją rozwoju uniwersalnego międzynarodowego standardu mającego na celu rozwiązanie problemu kompatybilności kodowań znaków narodowych. Stosując ten standard, można zakodować 2 16 = 65536 różnych znaków. Na ryc. 3.4 pokazuje tabelę kodów 0400 (alfabet rosyjski) standardu Unikod.

Ryż. 3.4. Tabela kodów Unicode 0400


Wyjaśnijmy na przykładzie, co powiedziano na temat kodowania informacji tekstowej.

Przykład 3.1

Zakoduj słowo „Komputer” jako ciąg liczb dziesiętnych i szesnastkowych, używając kodowania CP1251. Jakie znaki będą wyświetlane w tabelach kodów CP866 i KOI8-R w przypadku wykorzystania otrzymanego kodu.

Sekwencje kodu szesnastkowego i binarnego słowa „Komputer” oparte na tabeli kodowania CP1251 (patrz rys. 3.3, B) będzie wyglądać tak:

Ta sekwencja kodu w kodowaniu SR866 i KOI8-R spowoduje wyświetlenie następujących znaków:

Aby przekonwertować rosyjskojęzyczne dokumenty tekstowe z jednego standardu kodowania informacji tekstowych na inny, stosuje się specjalne programy - konwertery. Konwertery są zwykle wbudowane w inne programy. Przykładem może być program przeglądarkowy - Internet Explorera(TJ), który ma wbudowany konwerter. Program przeglądarki to specjalny program do przeglądania treści. strony internetowe w globalnym śieć komputerowa Internet. Użyjmy tego programu, aby potwierdzić wynik mapowania symboli uzyskany w przykładzie 3.1. Aby to zrobić, wykonamy następujące kroki.

1. Uruchom program Notatnik (Notatnik). Program Notatnik w systemie operacyjnym Windows XP uruchamiany za pomocą polecenia: [Przycisk Początek– Programy – Standard – Notatnik]. W otwartym oknie programu Notatnik wpisz słowo „Komputer”, korzystając ze składni języka znaczników dokumentów hipertekstowych - HTML (Hyper Text Markup Language). Język ten służy do tworzenia dokumentów w Internecie. Tekst powinien wyglądać następująco:

Woda komputerowa

, Gdzie

I

znaczniki (konstrukcje specjalne) języka HTML dla znaczników nagłówka. Na ryc. Rysunek 3.5 przedstawia wynik tych działań.

Ryż. 3.5. Wyświetlanie tekstu w oknie Notatnika


Zapiszmy ten tekst wykonując polecenie: [Plik - Zapisz jako...] w odpowiednim folderze na komputerze, zapisując tekst nadajemy plikowi nazwę - Uwaga, z rozszerzeniem. HTML.

2. Uruchommy program Internet Explorer, wykonując polecenie: [Przycisk Początek- Programy - Internet Explorer]. Po uruchomieniu programu wyświetli się okno pokazane na rys. 3.6

Ryż. 3.6. Okno dostępu offline


Wybierz i aktywuj przycisk Nieaktywny uniemożliwi to połączenie się komputera sieć globalna Internet. Pojawi się główne okno programu Internetu Microsoftu Poszukiwacz, pokazany na ryc. 3.7.

Ryż. 3.7. Podstawy Okno Microsoftu Internet Explorera


Wykonajmy polecenie: [Plik – Otwórz], pojawi się okno (rys. 3.8), w którym należy podać nazwę pliku i kliknąć przycisk OK lub naciśnij przycisk Recenzja… i znajdź plik Prim.html.

Ryż. 3.8. Otwórz okno


Okno główne programu Internet Explorer przyjmie postać pokazaną na rys. 3.9. W oknie pojawi się słowo „Komputer”. Następnie korzystając z górnego menu programu Internet Explorer, uruchom następujące polecenie: [Widok – Kodowanie – Cyrillic (DOS)]. Po wykonaniu tego polecenia w oknie programu Internet Explorera Wyświetlą się symbole pokazane na rys. 3.10. Podczas wykonywania polecenia: [Widok – Kodowanie – Cyrylica (KOI8-R)] w oknie programu Internet Explorera Wyświetlą się symbole pokazane na rys. 3.11.

Ryż. 3.9. Znaki wyświetlane przy kodowaniu CP1251


Ryż. 3.10. Znaki wyświetlane, gdy włączone jest kodowanie CP866 dla sekwencji kodu reprezentowanej w kodowaniu CP1251


Ryż. 3.11. Znaki wyświetlane, gdy włączone jest kodowanie KOI8-R dla sekwencji kodu reprezentowanej w kodowaniu CP1251


Uzyskane w ten sposób za pomocą programu Internet Explorera sekwencje znaków pokrywają się z sekwencjami znaków uzyskanymi przy użyciu tablic kodów CP866 i KOI8-R w przykładzie 3.1.

3.2. Kodowanie informacji graficznych

Informacje graficzne prezentowane w postaci obrazów, fotografii, slajdów, obrazów ruchomych (animacja, wideo), diagramów, rysunków można tworzyć i edytować za pomocą komputera i odpowiednio kodować. Obecnie jest ich dość duża liczba programy użytkowe do przetwarzania informacji graficznych, ale wszystkie implementują trzy typy Grafika komputerowa: rastrowe, wektorowe i fraktalne.

Jeśli przyjrzysz się bliżej obrazowi graficznemu na ekranie monitora komputera, zobaczysz dużą liczbę wielobarwnych kropek (pikseli - z języka angielskiego. piksel wykształcony od element obrazu – element obrazu), które zebrane razem tworzą dany obraz graficzny. Z tego możemy wyciągnąć wniosek: obraz graficzny na komputerze jest w określony sposób kodowany i musi być przedstawiony w odpowiedniej formie plik graficzny. Plik to podstawowa jednostka strukturalna służąca do organizowania i przechowywania danych w komputerze i w nim w tym przypadku musi zawierać informację o tym, jak przedstawić ten zbiór punktów na ekranie monitora.

Pliki utworzone na podstawie grafiki wektorowej zawierają informacje w postaci zależności matematycznych (funkcji matematycznych opisujących zależności liniowe) i odpowiednie dane dotyczące sposobu konstruowania obrazu obiektu za pomocą odcinków linii (wektorów) podczas wyświetlania go na monitorze komputera.

Pliki utworzone z grafika rastrowa, obejmują przechowywanie danych o każdym pojedynczym punkcie obrazu. Aby wyświetlić grafikę rastrową, nie są wymagane skomplikowane obliczenia matematyczne, wystarczy po prostu uzyskać dane o każdym punkcie obrazu (jego współrzędne i kolor) i wyświetlić je na ekranie monitora komputera.

W procesie kodowania obraz jest dyskretyzowany przestrzennie, tzn. obraz dzielony jest na poszczególne punkty i każdemu punktowi nadawany jest kod kolorystyczny (żółty, czerwony, niebieski itp.). Aby zakodować każdy punkt kolorowego obrazu graficznego, stosuje się zasadę rozkładu dowolnego koloru na jego główne składniki, dla których stosuje się trzy podstawowe kolory: czerwony (angielskie słowo Czerwony, oznaczony literą DO), zielony (Zielony, oznaczony literą G), niebieski (Niebieski, oznaczony przez buk W). Dowolny kolor kropki postrzegany przez ludzkie oko można uzyskać poprzez addytywne (proporcjonalne) dodanie (mieszanie) trzech kolorów podstawowych - czerwonego, zielonego i niebieskiego. Ten system kodowania nazywany jest systemem kolorów RGB. Pliki graficzne korzystające z systemu kolorów RGB przedstaw każdy punkt obrazu jako trójkę kolorów - trzy wartości liczbowe R., G I W, odpowiadające intensywnościom czerwieni, zieleni i niebieskie kolory. Proces kodowania obrazu graficznego odbywa się za pomocą różnych środki techniczne(skaner, aparat cyfrowy, cyfrowa kamera wideo itp.); efektem jest obraz rastrowy. Podczas odtwarzania kolorowych obrazów graficznych na kolorowym monitorze komputera kolor każdego punktu (piksela) takiego obrazu uzyskuje się przez zmieszanie trzech kolorów podstawowych R, G I B.

O jakości obrazu rastrowego decydują dwa główne parametry - rozdzielczość (liczba pikseli w poziomie i w pionie) oraz zastosowana paleta kolorów (liczba określonych kolorów dla każdego piksela na obrazie). Rozdzielczość określa się poprzez podanie liczby pikseli w poziomie i w pionie, np. 800 na 600 pikseli.

Istnieje zależność pomiędzy liczbą kolorów przypisanych do punktu na obrazie rastrowym a ilością informacji, jaka musi zostać przydzielona do przechowywania koloru punktu, określona zależnością (wzór R. Hartleya):

Gdzie I– ilość informacji; N - liczba kolorów przypisanych do punktu.

Ilość informacji wymagana do przechowywania koloru punktu nazywana jest także głębią kolorów lub jakością oddawania barw.

Zatem, jeśli liczba kolorów określona dla punktu obrazu wynosi N= 256, wówczas ilość informacji wymaganych do jego przechowywania (głębia koloru) zgodnie ze wzorem (3.1) będzie równa I= 8 bitów.

Komputery wykorzystują różne rodzaje grafiki do wyświetlania informacji. tryby graficzne monitorować działanie. Należy tutaj zaznaczyć, że oprócz trybu graficznego monitora istnieje także tryb tekstowy, w którym ekran monitora jest umownie podzielony na 25 linii po 80 znaków w linii. Te tryby graficzne charakteryzują się rozdzielczością ekranu monitora i jakością kolorów (głębią kolorów). Aby ustawić tryb graficzny ekranu monitora w systemie operacyjnym MS Windows XP należy wykonać polecenie: [Przycisk Początek– Ustawienia – Panel sterowania – Ekran]. W wyświetlonym oknie dialogowym „Właściwości: Ekran” (rys. 3.12) należy wybrać zakładkę „Parametry” i za pomocą suwaka „Rozdzielczość ekranu” wybrać odpowiednią rozdzielczość ekranu (800 na 600 pikseli, 1024 na 768 pikseli, itp.). Korzystając z listy rozwijanej „Jakość kolorów” możesz wybrać głębię kolorów - „Najwyższa (32 bity)”, „Średnia (16 bitów)” itp., a liczba kolorów przypisanych do każdego punktu obrazu będzie wynosić odpowiednio 2 32 (4294967296), 2 16 (65536) itd.

Ryż. 3.12. Wyświetl okno dialogowe Właściwości


Aby zaimplementować każdy z trybów graficznych ekranu monitora, wymagana jest pewna ilość pamięci wideo komputera. Wymagana ilość informacji w pamięci wideo (W) wyznacza się z relacji

Gdzie DO - liczba punktów obrazu na ekranie monitora (K = A · B); A - liczba poziomych punktów na ekranie monitora; W - liczba pionowych punktów na ekranie monitora; I– ilość informacji (głębia kolorów).

Jeśli więc ekran monitora ma rozdzielczość 1024 na 768 pikseli i paletę składającą się z 65 536 kolorów, to głębia kolorów zgodnie ze wzorem (3.1) będzie wynosić I = log 2 65 538 = 16 bitów, liczba pikseli obrazu będzie wynosić Być równe: K. = 1024 x 768 = 786432, a wymagana objętość informacyjna pamięci wideo zgodnie z (3.2) będzie równa

V= 786432 · 16 bitów = 12582912 bitów = 1572864 bajtów = 1536 KB = 1,5 MB.

Podsumowując, należy zauważyć, że oprócz wymienionych cech najważniejsze cechy monitora to wymiary geometryczne jego ekranu i punkty obrazu. Wymiary geometryczne ekranu zależą od przekątnej monitora. Przekątna monitorów podawana jest w calach (1 cal = 1" = 25,4 mm) i może przyjmować wartości równe: 14", 15", 17", 21" itp. Nowoczesne technologie produkcji monitorów mogą zapewnić obraz wielkość punktu równa 0,22 mm.

Zatem dla każdego monitora istnieje fizycznie maksymalna możliwa rozdzielczość ekranu, określona przez wielkość jego przekątnej i wielkość punktu obrazu.

Ćwiczenia do samodzielnego wykonania

1. Korzystanie z programu MS Excel przekonwertuj tablice kodowe ASCII, SR866, SR1251, KOI8-R na tablice postaci: w komórkach pierwszej kolumny tabel wpisz w kolejności alfabetycznej wielkie, a następnie małe litery alfabetu łacińskiego i cyrylicy, w komórkach druga kolumna - kody odpowiadające literom w systemie dziesiętnym, w komórkach trzecia kolumna to kody odpowiadające literom w systemie szesnastkowym. Wartości kodów należy wybrać z odpowiednich tabel kodów.

2. Zakoduj i zapisz następujące słowa jako ciąg liczb w systemie dziesiętnym i szesnastkowym:

A) Internet Explorer, B) Microsoft Office; V) CorelDRAW.

Kodowanie odbywa się przy użyciu zmodernizowanej tabeli kodowania ASCII uzyskanej w poprzednim ćwiczeniu.

3. Wykorzystując zmodernizowaną tablicę kodowania KOI8-R, dekoduj ciągi liczb zapisane w systemie liczb szesnastkowych:

a) FC CB DA C9 D3 D4 C5 CE C3 C9 D1;

b) EB CF CE C6 CF D2 CD C9 DA CD;

c) FC CB D3 D0 D2 C5 D3 C9 CF CE C9 DA CD.

4. Jak będzie wyglądać słowo „Cybernetyka” zapisane w kodowaniu SR1251 przy zastosowaniu kodowania SR866 i KOI8-R? Sprawdź wyniki za pomocą programu Internet Explorera.

5. Korzystając z tabeli kodów pokazanej na ryc. 3.1 A, rozszyfrować następujące sekwencje kodów zapisane w systemie liczb binarnych:

a) 01010111 01101111 01110010 01100100;

b) 01000101 01111000 01100011 01100101 01101100;

c) 01000001 01100011 01100011 01100101 01110011 01110011.

6. Określ objętość informacyjną słowa „Ekonomia” zakodowanego przy użyciu tablic kodów SR866, SR1251, Unicode i KOI8-R.

7. Określ objętość informacyjną pliku uzyskanego w wyniku skanowania obrazu kolorowego o wymiarach 12x12 cm Rozdzielczość skanera użytego do skanowania tego obrazu, równa 600 dpi. Skaner ustawia głębię kolorów punktu obrazu na 16 bitów.

Rozdzielczość skanera 600 dpi (kropka calowa - punktów na cal) określa zdolność skanera o tej rozdzielczości do rozróżnienia 600 punktów na 1-calowym segmencie.

8. Określ objętość informacyjną pliku uzyskanego w wyniku zeskanowania kolorowego obrazu formatu A4. Rozdzielczość skanera użytego do zeskanowania tego obrazu wynosi 1200 dpi. Skaner ustawia głębię kolorów punktu obrazu na 24 bity.

9. Określ liczbę kolorów w palecie przy głębi kolorów 8, 16, 24 i 32 bity.

10. Określ wymaganą ilość pamięci wideo dla trybów graficznych ekranu monitora 640 na 480, 800 na 600, 1024 na 768 i 1280 na 1024 pikseli z głębią kolorów pikseli obrazu wynoszącą 8, 16, 24 i 32 bity. Podsumuj wyniki w tabeli. Rozwijaj się w MS Excel program do automatyzacji obliczeń.

11. Określ maksymalną liczbę kolorów, w jakiej można zapisać obraz o wymiarach 32 na 32 piksele, jeśli komputer ma na obraz przydzielone 2 KB pamięci.

12. Określ maksymalną możliwą rozdzielczość ekranu monitora o długości przekątnej 15" i wielkości punktu obrazu 0,28 mm.

13. Jakie tryby graficzne monitora zapewnia 64 MB pamięci wideo?

Zawartość

I. Historia kodowania informacji……………………………..3

II. Kodowanie informacji…………………………………………………4

III. Kodowanie informacji tekstowych…………………………….4

IV. Rodzaje tablic kodowania………………………………………………………...6

V. Obliczanie ilości informacji tekstowych………………………14

Lista referencji……………………………..16

I . Historia kodowania informacji

Ludzkość stosuje szyfrowanie (kodowanie) tekstu od samego momentu pojawienia się pierwszego z nich. tajne informacje. Oto kilka technik kodowania tekstu, które zostały wynalezione na różnych etapach rozwoju ludzkiej myśli:

Kryptografia to tajne pisanie, system zmiany pisma w celu uczynienia tekstu niezrozumiałym dla niewtajemniczonych;

Alfabet Morse'a lub nierówny kod telegraficzny, w którym każda litera lub znak jest reprezentowana przez własną kombinację krótkich elementarnych impulsów prądu elektrycznego (kropki) i elementarnych impulsów o potrójnym czasie trwania (kreska);

język migowy to język migowy używany przez osoby z wadami słuchu.

Jeden z pierwszych znane metody szyfrowanie nosi imię rzymskiego cesarza Juliusza Cezara (I wiek p.n.e.). Metoda ta polega na zastąpieniu każdej litery zaszyfrowanego tekstu inną, poprzez przesunięcie alfabetu z oryginalnej litery o ustaloną liczbę znaków, a alfabet jest odczytywany po okręgu, czyli po literze i uwzględniane jest a . Zatem słowo „bajt” przesunięte o dwa znaki w prawo jest kodowane jako słowo „gwlf”. Odwrotny proces rozszyfrowania danego słowa polega na zastąpieniu każdej zaszyfrowanej litery drugą po jego lewej stronie.

II. Kodowanie informacji

Kod jest zestawem symbolika(lub sygnały) w celu zarejestrowania (lub przekazania) pewnych wcześniej zdefiniowanych koncepcji.

Kodowanie informacji to proces tworzenia określonej reprezentacji informacji. W więcej w wąskim znaczeniu Termin „kodowanie” często odnosi się do przejścia od jednej formy reprezentacji informacji do innej, wygodniejszej do przechowywania, przesyłania lub przetwarzania.

Zwykle każdy obraz podczas kodowania (czasami nazywanego szyfrowaniem) jest reprezentowany przez osobny znak.

Znak jest elementem skończonego zbioru elementów odrębnych od siebie.

W węższym znaczeniu termin „kodowanie” jest często rozumiany jako przejście od jednej formy reprezentacji informacji do innej, wygodniejszej do przechowywania, przesyłania czy przetwarzania.

Informacje tekstowe można przetwarzać na komputerze. Każda litera wprowadzana do komputera jest kodowana z określoną liczbą, a po przesłaniu do urządzeń zewnętrznych (na ekranie lub wydruku) z tych liczb budowane są obrazy liter, które są dostępne dla ludzkiej percepcji. Zgodność między zestawem liter i cyfr nazywa się kodowaniem znaków.

Z reguły wszystkie liczby w komputerze są reprezentowane za pomocą zer i jedynek (a nie dziesięciu cyfr, jak to zwykle bywa u ludzi). Innymi słowy, komputery zwykle działają w systemie liczb binarnych, ponieważ dzięki temu urządzenia do ich przetwarzania są znacznie prostsze. Wprowadzanie liczb do komputera i wyświetlanie ich w celu odczytania przez człowieka może odbywać się w zwykłej formie dziesiętnej, a wszystkie niezbędne konwersje dokonują programy działające na komputerze.

III. Kodowanie informacji tekstowych

Ta sama informacja może być przedstawiona (zakodowana) w kilku formach. Wraz z pojawieniem się komputerów pojawiła się potrzeba kodowania wszelkiego rodzaju informacji, z którymi ma do czynienia zarówno jednostka, jak i cała ludzkość. Ale ludzkość zaczęła rozwiązywać problem kodowania informacji na długo przed pojawieniem się komputerów. Wspaniałe osiągnięcia ludzkości - pisanie i arytmetyka - to nic innego jak system kodowania mowy i informacji liczbowych. Informacja nigdy nie pojawia się w czystej postaci, zawsze jest w jakiś sposób przedstawiona, w jakiś sposób zakodowana.

Kodowanie binarne jest jednym z powszechnych sposobów przedstawiania informacji. W komputerach, robotach i maszynach sterowanych numerycznie z reguły cała informacja, z którą ma do czynienia urządzenie, jest kodowana w postaci słów alfabetu binarnego.

Od końca lat 60. do przetwarzania informacji tekstowych coraz częściej wykorzystuje się komputery, a obecnie większość z nich komputery osobiste na świecie (i przez większość czasu) zajmuje się przetwarzaniem informacji tekstowych. Wszystkie tego typu informacje w komputerze są prezentowane w kodzie binarnym, to znaczy używany jest alfabet potęgi dwa (tylko dwa znaki 0 ​​i 1). Wynika to z faktu, że wygodnie jest przedstawić informację w postaci ciągu impulsów elektrycznych: nie ma impulsu (0), jest impuls (1).

Takie kodowanie nazywa się zwykle binarnym, a same logiczne ciągi zer i jedynek nazywane są językiem maszynowym.

Z komputerowego punktu widzenia tekst składa się z pojedynczych znaków. Symbolami są nie tylko litery (duże lub małe, łacińskie czy rosyjskie), ale także cyfry, znaki interpunkcyjne, znaki specjalne takie jak „=”, „(”, „&” itp., a nawet (zwróć szczególną uwagę!) spacje między wyrazami.

Teksty wprowadzane są do pamięci komputera przy pomocy klawiatury. Na klawiszach zapisane są litery, cyfry, znaki interpunkcyjne i inne znane nam symbole. Wprowadzają pamięć RAM w kodzie binarnym. Oznacza to, że każdy znak jest reprezentowany przez 8-bitowy kod binarny.

Tradycyjnie do zakodowania jednego znaku wykorzystuje się ilość informacji równą 1 bajtowi, czyli I = 1 bajt = 8 bitów. Korzystając ze wzoru łączącego liczbę możliwych zdarzeń K z ilością informacji I, można obliczyć, ile różnych symboli można zakodować (przy założeniu, że symbole są możliwymi zdarzeniami): K = 2 I = 2 8 = 256, czyli dla To reprezentują informacje tekstowe, można użyć alfabetu o długości 256 znaków.

Ta liczba znaków jest wystarczająca do przedstawienia informacji tekstowych, w tym wielkich i małych liter alfabetu rosyjskiego i łacińskiego, cyfr, znaków, symbole graficzne itp.

Kodowanie polega na przypisaniu każdemu znakowi unikalności kod dziesiętny od 0 do 255 lub odpowiedni kod binarny od 00000000 do 11111111. W ten sposób osoba rozróżnia znaki po ich obrysie, a komputer po kodzie.

Wygoda kodowania znaków bajt po bajcie jest oczywista, ponieważ bajt jest najmniejszą adresowalną częścią pamięci i dlatego procesor może uzyskać dostęp do każdego znaku oddzielnie podczas przetwarzania tekstu. Z drugiej strony 256 znaków to całkiem wystarczająca liczba, aby przedstawić szeroką gamę informacji symbolicznych.

W procesie wyświetlania symbolu na ekranie komputera następuje proces odwrotny – dekodowanie, czyli zamiana kodu symbolu na jego obraz. Ważne jest, aby przypisanie konkretnego kodu do symbolu było kwestią uzgodnienia, co jest zapisane w tabeli kodów.

Teraz pojawia się pytanie, jaki ośmiobitowy kod binarny przypisać do każdego znaku. Oczywiste jest, że jest to kwestia warunkowa, można wymyślić wiele metod kodowania.

Wszystkie znaki alfabetu komputerowego są ponumerowane od 0 do 255. Każda liczba odpowiada ośmiobitowemu kodowi binarnemu od 00000000 do 11111111. Kod ten jest po prostu numerem seryjnym znaku w systemie liczb binarnych.

IV . Rodzaje tablic kodowania

Tabela, w której przypisane są do siebie wszystkie znaki alfabetu komputerowego numer seryjny, nazywa się tablicą kodowania.

Różne typy komputerów korzystają z różnych tabel kodowania.

Tabela kodów ASCII (American Standard Code for Information Interchange) została przyjęta jako międzynarodowy standard, kodujący pierwszą połowę znaków kodami numerycznymi od 0 do 127 (kody od 0 do 32 są przypisane nie do znaków, ale do klawiszy funkcyjnych) .

Tabela kodów ASCII jest podzielona na dwie części.

Tylko pierwsza połowa tabeli to standard międzynarodowy, tj. znaki zawierające cyfry od 0 (00000000), do 127 (01111111).

Struktura tabeli kodowania ASCII

Numer seryjny Kod Symbol
0 - 31 00000000 - 00011111

Symbole z liczbami od 0 do 31 nazywane są zwykle symbolami kontrolnymi.

Ich funkcją jest sterowanie procesem wyświetlania tekstu na ekranie lub wydruku, emitowaniem sygnału dźwiękowego, zaznaczaniem tekstu itp.

32 - 127 0100000 - 01111111

Standardowa część stołu (w języku angielskim). Obejmuje to małe i wielkie litery alfabetu łacińskiego, cyfry dziesiętne, znaki interpunkcyjne, wszelkiego rodzaju nawiasy, symbole handlowe i inne.

Znak 32 to spacja, tj. pusta pozycja w tekście.

Wszystkie inne odzwierciedlają pewne znaki.

128 - 255 10000000 - 11111111

Alternatywna część stołu (rosyjska).

Druga połowa tabeli kodów ASCII, zwana stroną kodową (128 kodów, zaczynając od 10000000 i kończąc na 11111111), może mieć różne opcje, każda opcja ma swój własny numer.

Strona kodowa jest używana głównie do obsługi alfabetów narodowych innych niż łaciński. W rosyjskich kodowaniach narodowych w tej części tabeli umieszczane są znaki z alfabetu rosyjskiego.

Pierwsza połowa tabeli kodów ASCII

Należy pamiętać, że w tabeli kodowania litery (duże i małe) są ułożone w kolejności alfabetycznej, a cyfry w kolejności rosnącej. To zachowanie porządku leksykograficznego w układzie symboli nazywa się zasadą sekwencyjnego kodowania alfabetu.

W przypadku liter alfabetu rosyjskiego przestrzegana jest również zasada kodowania sekwencyjnego.

Druga połowa tabeli kodów ASCII

Niestety, obecnie istnieje pięć różnych kodowań cyrylicy (KOI8-R, Windows. MS-DOS, Macintosh i ISO). Z tego powodu często pojawiają się problemy z przesyłaniem tekstu rosyjskiego z jednego komputera na drugi, z jednego systemu oprogramowania do innego.

Chronologicznie jednym z pierwszych standardów kodowania rosyjskich liter na komputerach był KOI8 („Kod wymiany informacji, 8-bitowy”). To kodowanie było używane w latach 70. na komputerach z serii ES, a od połowy lat 80. zaczęto je stosować w pierwszych zrusyfikowanych wersjach systemu operacyjnego UNIX.

Od początku lat 90-tych, czyli czasów dominacji systemu operacyjnego MS DOS, nadal obowiązuje kodowanie CP866 („CP” oznacza „stronę kodową”, „stronę kodową”).

Komputery Apple z systemami operacyjnymi Systemy Mac OS, użyj własnego kodowania Mac.

Ponadto Międzynarodowa Organizacja Normalizacyjna (ISO) zatwierdziła inne kodowanie o nazwie ISO 8859-5 jako standard dla języka rosyjskiego.

Najpopularniejszym obecnie stosowanym kodowaniem jest Microsoft Windows, w skrócie CP1251. Wprowadzono przez Microsoft; Biorąc pod uwagę szeroką dystrybucję systemów operacyjnych (OS) i innych produktów oprogramowania tej firmy w Federacji Rosyjskiej, znalazła ona szeroką dystrybucję.

Od końca lat 90-tych problem standaryzacji kodowania znaków został rozwiązany poprzez wprowadzenie nowego międzynarodowego standardu zwanego Unicode.

Jest to kodowanie 16-bitowe, tj. przydziela 2 bajty pamięci dla każdego znaku. Zwiększa to oczywiście ilość zajmowanej pamięci 2-krotnie. Ale taka tabela kodów pozwala na włączenie do 65536 znaków. Pełna specyfikacja standardu Unicode obejmuje wszystkie istniejące, wymarłe i sztucznie stworzone alfabety świata, a także wiele symboli matematycznych, muzycznych, chemicznych i innych.

Wewnętrzna reprezentacja słów w pamięci komputera

za pomocą tabeli ASCII

Czasem zdarza się, że otrzymanego z innego komputera tekstu składającego się z liter alfabetu rosyjskiego nie da się odczytać – na ekranie monitora widoczna jest swego rodzaju „abrakadabra”. Dzieje się tak, ponieważ komputery używają innego kodowania znaków dla języka rosyjskiego.

Zatem każde kodowanie jest określone przez własną tabelę kodów. Jak widać z tabeli, do tego samego kodu binarnego przypisane są różne znaki w różnych kodowaniach.

Przykładowo ciąg kodów numerycznych 221, 194, 204 w kodowaniu CP1251 tworzy słowo „komputer”, podczas gdy w innych kodowaniach będzie to bezsensowny zestaw znaków.

Na szczęście w większości przypadków użytkownik nie musi się martwić o transkodowanie dokumentów tekstowych, gdyż zajmują się tym specjalne programy konwertujące wbudowane w aplikacje.

V . Obliczanie ilości informacji tekstowych

Zadanie 1: Zakoduj słowo „Rzym”, korzystając z tabel kodowania KOI8-R i CP1251.

Rozwiązanie:

Zadanie 2: Zakładając, że każdy znak jest zakodowany w jednym bajcie, oszacuj objętość informacyjną następującego zdania:

„Mój wujek ma najbardziej uczciwe zasady,

Kiedy poważnie zachorowałem,

Zmusił się do szacunku

I nie mogłem wymyślić nic lepszego.

Rozwiązanie: To wyrażenie ma 108 znaków, łącznie ze znakami interpunkcyjnymi, cudzysłowami i spacjami. Mnożymy tę liczbę przez 8 bitów. Otrzymujemy 108*8=864 bity.

Zadanie 3: Obydwa teksty zawierają tę samą liczbę znaków. Pierwszy tekst napisany jest w języku rosyjskim, drugi w języku plemienia Naguri, którego alfabet składa się z 16 znaków. Czyj tekst niesie duża ilość Informacja?

Rozwiązanie:

1) I = K * a (objętość informacyjna tekstu jest równa iloczynowi liczby znaków i wagi informacyjnej jednego znaku).

2) Ponieważ Obydwa teksty mają tę samą liczbę znaków (K), wówczas różnica zależy od zawartości informacyjnej jednego znaku alfabetu (a).

3) 2 a1 = 32, tj. a 1 = 5 bitów, 2 a2 = 16, tj. i 2 = 4 bity.

4) I 1 = K * 5 bitów, I 2 = K * 4 bity.

5) Oznacza to, że tekst napisany w języku rosyjskim niesie 5/4 razy więcej informacji.

Zadanie 4: Rozmiar wiadomości, zawierającej 2048 znaków, wynosił 1/512 MB. Określ moc alfabetu.

Rozwiązanie:

1) I = 1/512 * 1024 * 1024 * 8 = 16384 bity - przeliczono objętość informacji wiadomości na bity.

2) a = I / K = 16384 /1024 = 16 bitów - odpowiada jednemu znakowi alfabetu.

3) 2*16*2048 = 65536 znaków – moc zastosowanego alfabetu.

Zadanie 5: Drukarka laserowa Canon LBP drukuje ze średnią szybkością 6,3 Kb/s. Ile czasu zajmie wydrukowanie 8-stronicowego dokumentu, jeśli wiesz, że jedna strona ma średnio 45 linii i 70 znaków w każdej linii (1 znak - 1 bajt)?

Rozwiązanie:

1) Oblicz ilość informacji zawartych na 1 stronie: 45 * 70 * 8 bitów = 25200 bitów

2) Znajdź ilość informacji na 8 stronach: 25200 * 8 = 201600 bitów

3) Redukujemy do powszechnych jednostek miary. W tym celu konwertujemy Mbity na bity: 6,3*1024=6451,2 bitów/s.

4) Znajdź czas drukowania: 201600: 6451,2 = 31 sekund.

Bibliografia

1. Ageev V.M. Teoria informacji i kodowania: próbkowanie i kodowanie informacje pomiarowe. - M.: MAI, 1977.

2. Kuzmin I.V., Kedrus V.A. Podstawy teorii informacji i kodowania. - Kijów, szkoła Wiszcza, 1986.

3. Najprostsze metody szyfrowania tekstu / D.M. Zlatopolski. – M.: Chistye Prudy, 2007 – 32 s.

4. Ugrinowicz N.D. Informatyka i technologie informacyjne. Podręcznik dla klas 10-11 / N.D. Ugrinovich. – M.: BINOM. Laboratorium Wiedzy, 2003. – 512 s.

5. http://school497.spb.edu.ru/uchint002/les10/les.html#n

Materiał dla samokształcenie na temat wykładów 2

Kodowanie ASCII

Tabela kodowania ASCII (ASCII – amerykański standardowy kod wymiany informacji – amerykański standardowy kod wymiany informacji).

W sumie za pomocą tabeli kodowania ASCII można zakodować 256 różnych znaków (rysunek 1). Tabela ta podzielona jest na dwie części: główną (z kodami od OOh do 7Fh) i dodatkową (od 80h do FFh, gdzie litera h oznacza, że ​​kod należy do systemu liczb szesnastkowych).

Obrazek 1

Do zakodowania jednego znaku z tablicy przydzielanych jest 8 bitów (1 bajt). Podczas przetwarzania informacji tekstowych jeden bajt może zawierać kod określonego znaku - litery, cyfry, znaku interpunkcyjnego, znaku akcji itp. Każdy znak ma swój własny kod w postaci liczby całkowitej. W tym przypadku wszystkie kody gromadzone są w specjalnych tabelach zwanych tabelami kodowania. Za ich pomocą kod symbolu jest konwertowany na jego widoczną reprezentację na ekranie monitora. W rezultacie dowolny tekst w pamięci komputera jest reprezentowany jako ciąg bajtów z kodami znaków.

Na przykład słowo cześć! będą kodowane w następujący sposób (Tabela 1).

Tabela 1

Kod binarny

Kod dziesiętny

Rysunek 1 przedstawia znaki zawarte w standardowym (angielskim) i rozszerzonym (rosyjskim) kodowaniu ASCII.

Pierwsza połowa tabeli ASCII jest znormalizowana. Zawiera kody sterujące (od 00:00 do 20:00 i 77:00). Kody te zostały usunięte z tabeli, ponieważ nie dotyczą elementów tekstowych. Umieszczono tu także znaki interpunkcyjne i symbole matematyczne: 2lh - !, 26h - &, 28h - (, 2Bh -+,..., duże i małe listy: 41h - A, 61h - A.

Druga połowa tabeli zawiera czcionki narodowe, symbole pseudograficzne, z których można budować tabele, oraz specjalne symbole matematyczne. Dolną część tablicy kodowania można zastąpić odpowiednimi sterownikami - sterującymi programami pomocniczymi. Technika ta pozwala na użycie kilku czcionek i ich krojów.

Wyświetlacz każdego kodu symbolu powinien wyświetlać obraz symbolu – nie tylko kod cyfrowy, ale odpowiadający mu obraz, ponieważ każdy symbol ma swój własny kształt. Opis kształtu każdego znaku przechowywany jest w specjalnej pamięci wyświetlacza – generatorze znaków. Na przykład podświetlanie znaku na ekranie wyświetlacza IBM PC odbywa się za pomocą kropek tworzących matrycę znaków. Każdy piksel w takiej matrycy jest elementem obrazu i może być jasny lub ciemny. Ciemna kropka jest kodowana jako 0, jasna (jasna) kropka jako 1. Jeśli w polu matrycy znaku przedstawisz ciemne piksele jako kropkę, a jasne piksele jako gwiazdkę, możesz graficznie przedstawić kształt symbolu.

Mieszkańcy różnych krajów używają symboli do zapisywania słów w swoich ojczystych językach. Obecnie większość aplikacji, w tym systemy poczty e-mail i przeglądarki internetowe, jest w pełni 8-bitowa, co oznacza, że ​​mogą wyświetlać i poprawnie akceptować tylko znaki 8-bitowe, zgodnie z normą ISO-8859-1.

Na świecie jest ponad 256 znaków (jeśli wziąć pod uwagę cyrylicę, arabską, chińską, japońską, koreańską i tajską), a nowych znaków pojawia się coraz więcej. A to stwarza dla wielu użytkowników następujące luki:

W tym samym dokumencie nie można używać znaków z różnych zestawów kodowania. Ponieważ każdy dokument tekstowy korzysta z własnego zestawu kodowań, automatyczne rozpoznawanie tekstu wiąże się z dużymi trudnościami.

Pojawiają się nowe symbole (np. Euro), w wyniku czego ISO opracowuje nowy standard ISO-8859-15, który jest bardzo podobny do standardu ISO-8859-1. Różnica polega na tym, że ze starej tabeli kodowania ISO-8859-1 usunięto symbole starych walut, które nie są obecnie używane, aby zrobić miejsce dla nowo wprowadzonych symboli (takich jak euro). W rezultacie użytkownicy mogą mieć na swoich dyskach te same dokumenty, ale w innym kodowaniu. Rozwiązaniem tych problemów jest przyjęcie jednego międzynarodowego zestawu kodowań zwanego Universal Coding lub Unicode.

Kodowanie Unikod

Standard został zaproponowany w 1991 roku przez organizację non-profit Unicode Consortium (Unicode Inc.). Zastosowanie tego standardu umożliwia kodowanie bardzo duża liczba znaki z różnych pism: dokumenty Unicode mogą zawierać znaki chińskie, symbole matematyczne, litery alfabetu greckiego, alfabetu łacińskiego i cyrylicy, a przełączanie stron kodowych staje się niepotrzebne.

Standard składa się z dwóch głównych sekcji: uniwersalnego zestawu znaków (UCS) i rodziny kodowania (UTF, format transformacji Unicode). Uniwersalny zestaw znaków określa zgodność jeden do jednego między znakami i kodami - elementami przestrzeni kodowej reprezentującymi nieujemne liczby całkowite. Rodzina kodowania definiuje maszynową reprezentację sekwencji kodów UCS.

Standard Unicode został opracowany w celu stworzenia jednolitego kodowania znaków dla wszystkich współczesnych i wielu starożytnych języków pisanych. Każdy znak w tym standardzie jest kodowany 16-bitowo, co pozwala na pokrycie nieporównywalnie większej liczby znaków niż dotychczas przyjęte kodowanie 8-bitowe. Kolejną ważną różnicą między Unicode a innymi systemami kodowania jest to, że nie tylko przypisuje Unikalny kod, ale także określa różne cechy tego symbolu, na przykład:

    rodzaj znaku (wielka litera, mała litera, cyfra, znak interpunkcyjny itp.);

    atrybuty znaków (wyświetlanie od lewej do prawej lub od prawej do lewej, spacja, podział linii itp.);

    odpowiednia wielka lub mała litera (odpowiednio dla małych i wielkich liter);

    odpowiednią wartość numeryczną (w przypadku znaków numerycznych).

Cały zakres kodów od 0 do FFFF jest podzielony na kilka standardowych podzbiorów, z których każdy odpowiada albo alfabetowi języka, albo grupie znaków specjalnych o podobnych funkcjach. Poniższy diagram zawiera ogólną listę podzbiorów Unicode 3.0 (rysunek 2).

Rysunek 2

Standard Unicode jest podstawą przechowywania tekstu w wielu nowoczesnych systemach komputerowych. Jednak nie jest kompatybilny z większością protokołów internetowych, ponieważ jego kody mogą zawierać dowolne wartości bajtów, a protokoły zazwyczaj wykorzystują bajty 00 - 1F i FE - FF jako bajty serwisowe. Aby osiągnąć zgodność, opracowano kilka formatów transformacji Unicode (UTF), z których zdecydowanie najpopularniejszy jest UTF-8. Ten format definiuje następujące zasady konwersji każdego kodu Unicode na zestaw bajtów (od jednego do trzech) odpowiedni do przesyłania przez protokoły internetowe.

Tutaj x, y, z oznaczają bity kod źródłowy, który należy pobrać zaczynając od najmniej znaczącego i wprowadzić do bajtów wynikowych od prawej do lewej, aż do zapełnienia wszystkich określonych pozycji.

Dalszy rozwój standardu Unicode wiąże się z dodaniem nowych płaszczyzn językowych, tj. znaków z przedziałów 10000 - 1FFFF, 20000 - 2FFFF itp., gdzie ma uwzględniać kodowanie dla skryptów martwych języków, które nie są ujęte w powyższej tabeli. Do kodowania tych dodatkowych znaków opracowano nowy format UTF-16.

Istnieją zatem 4 główne sposoby kodowania bajtów Unicode:

UTF-8: 128 znaków zakodowanych w jednym bajcie (format ASCII), 1920 znaków zakodowanych w 2 bajtach ((znaki rzymskie, greckie, cyrylica, koptyjskie, ormiańskie, hebrajskie, arabskie), 63488 znaków zakodowanych w 3 bajtach (chiński, japoński itp.) .) Pozostałe 2 147 418 112 znaków (jeszcze nieużywanych) można zakodować przy użyciu 4, 5 lub 6 bajtów.

UCS-2: Każdy znak jest reprezentowany przez 2 bajty. To kodowanie obejmuje tylko pierwsze 65 535 znaków z formatu Unicode.

UTF-16: rozszerzenie UCS-2, zawiera 1 114 112 znaków w formacie Unicode. Pierwsze 65 535 znaków jest reprezentowanych przez 2 bajty, pozostałe przez 4 bajty.

USC-4: Każdy znak jest kodowany w 4 bajtach.

Aby poprawnie posługiwać się kodem ASCII konieczne jest poszerzenie wiedzy w tym zakresie oraz o możliwościach kodowania.

Co to jest?

ASCII to tablica kodowania drukowanych znaków (patrz zrzut ekranu nr 1) wpisywanych na klawiaturze komputera w celu przesyłania informacji i niektórych kodów. Innymi słowy, alfabet i cyfry dziesiętne są kodowane w odpowiednich symbolach, które reprezentują i niosą niezbędne informacje.

Kodowanie ASCII został opracowany w Ameryce, dlatego standardowa tabela kodowania zwykle zawiera alfabet angielski z cyframi, w sumie około 128 znaków. Ale wtedy pojawia się słuszne pytanie: co zrobić, jeśli wymagane jest kodowanie alfabetu narodowego?

Aby rozwiązać podobne problemy, opracowano inne wersje tabeli ASCII. Na przykład w przypadku języków o strukturze języka obcego usunięto lub dodano litery alfabetu angielskiego dodatkowe znaki w formie alfabetu narodowego. Zatem kodowanie ASCII może zawierać rosyjskie litery do użytku krajowego (patrz zrzut ekranu nr 2).

Gdzie używany jest system kodowania ASCII?

Ten system kodowania jest niezbędny nie tylko do wpisywania informacji tekstowych na klawiaturze. Jest również stosowany w grafice. Na przykład w programie ASCII Art Maker obrazy graficzne różne rozszerzenia składają się z zakresu znaków ASCII (patrz zrzut ekranu nr 3).


Z reguły takie programy można podzielić na te, które pełnią funkcję edytorów graficznych, zamieniając obraz na tekst, oraz te, które konwertują obraz na grafikę ASCII. Dobrze znany emotikon (lub jak się go nazywa „ uśmiechnięta ludzka twarz") jest także przykładem znaku kodującego.

Tej metody kodowania można również użyć podczas pisania lub tworzenia dokumentu HTML. Przykładowo wpisujesz określony i niezbędny zestaw znaków, a podczas przeglądania samej strony na ekranie wyświetli się symbol odpowiadający temu kodowi.

Między innymi ten rodzaj kodowania jest niezbędny przy tworzeniu wielojęzycznej witryny internetowej, ponieważ znaki, które nie są zawarte w tej czy innej tabeli krajowej, będą musiały zostać zastąpione kodami ASCII. Jeżeli czytelnik jest bezpośrednio związany z technologiami informacyjno-komunikacyjnymi (ICT), to przydatne będzie dla niego zapoznanie się z takimi systemami jak:

  1. Przenośny zestaw znaków;
  2. Znaki kontrolne;
  3. EBCDIC;
  4. VISCII;
  5. YUSCII;
  6. Unikod;
  7. Grafika ASCII;
  8. KOI-8.

Właściwości tabeli ASCII

Jak każdy program systematyczny, ASCII ma swoje własne charakterystyczne właściwości. Na przykład system liczb dziesiętnych (cyfry od 0 do 9) jest konwertowany na system liczb binarnych (tj. każda cyfra dziesiętna jest konwertowana na system binarny odpowiednio 288 = 1001000).

Litery znajdujące się w górnej i dolnej kolumnie różnią się od siebie tylko nieznacznie, co znacznie zmniejsza stopień skomplikowania sprawdzania i edycji sprawy.

Dzięki tym wszystkim właściwościom kodowanie ASCII działa jako ośmiobitowe, chociaż pierwotnie miało być siedmiobitowe.

Zastosowanie ASCII w Programy Microsoftu Biuro:

Jeśli to konieczne ta opcja kodowania informacji można używać w programie Microsoft Notatnik i programie Microsoft Office Word. W ramach tych aplikacji dokument można zapisać w formacie ASCII, ale w tym przypadku nie będzie można korzystać z niektórych funkcji podczas wpisywania tekstu.

W szczególności pogrubienie i czcionka pogrubiona nie będą dostępne, ponieważ kodowanie zachowuje jedynie znaczenie wpisywanych informacji, a nie ogólny wygląd i formę. Możesz dodać takie kody do dokumentu za pomocą następujących aplikacji:

  • Microsoft Excel;
  • Strona główna Microsoftu;
  • Microsoft InfoPath;
  • Microsoft OneNote;
  • Microsoft Outlook;
  • Microsoft PowerPoint;
  • Projekt Microsoftu.

Warto wziąć pod uwagę, że wpisując kod ASCII w tych aplikacjach trzeba przytrzymać klawisz klawiatury ALT.

Oczywiście wszystkie niezbędne kody wymagają dłuższej i bardziej szczegółowej analizy, ale wykracza to poza zakres naszego dzisiejszego artykułu. Mam nadzieję, że uznałeś to za naprawdę przydatne.

Do zobaczenia!

Dobry zły

Unicode (Unicode w języku angielskim) to standard kodowania znaków. Mówiąc najprościej, jest to tabela korespondencji między znakami tekstowymi ( , literami, elementy interpunkcyjne) kody binarne. Komputer rozumie tylko sekwencję zer i jedynek. Aby wiedział, co dokładnie powinien wyświetlić na ekranie, należy każdemu znakowi przypisać własny, unikalny numer. W latach osiemdziesiątych znaki kodowano w jednym bajcie, czyli ośmiu bitach (każdy bit to 0 lub 1). Okazało się zatem, że jedna tabela (inaczej kodowanie lub zestaw) może pomieścić tylko 256 znaków. To może nie wystarczyć nawet dla jednego języka. Dlatego pojawiło się wiele różnych kodowań, których pomieszanie często prowadziło do pojawienia się na ekranie zamiast czytelnego tekstu jakiegoś dziwnego bełkotu. Wymagany był jeden standard, którym stał się Unicode. Najczęściej używanym kodowaniem jest UTF-8 (Unicode Transformation Format), który wykorzystuje od 1 do 4 bajtów do reprezentowania znaku.

Symbolika

Znaki w tabelach Unicode są numerowane liczbami szesnastkowymi. Na przykład cyrylica Wielka litera M jest oznaczony jako U+041C. Oznacza to, że stoi na przecięciu wiersza 041 i kolumny C. Można go po prostu skopiować i potem gdzieś wkleić. Aby nie szperać po wielokilometrowej liście warto skorzystać z wyszukiwarki. Kiedy przejdziesz do strony symboli, zobaczysz jego numer Unicode i sposób, w jaki jest on napisany różnymi czcionkami. Możesz wpisać sam znak w pasku wyszukiwania, nawet jeśli zamiast tego zostanie narysowany kwadrat, przynajmniej aby dowiedzieć się, co to było. Ponadto na tej stronie znajdują się specjalne (i losowe) zestawy ikon tego samego typu, z których zostały zebrane różne sekcje, dla łatwości użytkowania.

Standard Unicode ma charakter międzynarodowy. Zawiera postacie z niemal wszystkich skryptów świata. W tym te, które nie są już używane. Hieroglify egipskie, runy germańskie, pismo Majów, pismo klinowe i alfabety starożytnych państw. Zaprezentowano także oznaczenia wag i miar, zapis nutowy oraz pojęcia matematyczne.

Samo Konsorcjum Unicode nie wymyśla nowych znaków. Ikony, które znajdują zastosowanie w społeczeństwie, są dodawane do tabel. Na przykład znak rubla był aktywnie używany przez sześć lat, zanim został dodany do Unicode. Piktogramy emoji (emotikony) były również po raz pierwszy szeroko stosowane w Japonii, zanim zostały uwzględnione w kodowaniu. Zasadniczo jednak znaki towarowe i logo firmy nie są dodawane. Nawet tak powszechne, jak jabłko Apple czy flaga Windows. Do tej pory w wersji 8.0 zakodowano około 120 tysięcy znaków.

Witam, drodzy czytelnicy bloga. Dzisiaj porozmawiamy z Wami o tym, skąd biorą się krakozyabry na stronie internetowej i w programach, jakie istnieją kodowania tekstu i jakie należy stosować. Przyjrzyjmy się bliżej historii ich rozwoju, zaczynając od podstawowego ASCII, a także jego rozszerzonych wersji CP866, KOI8-R, Windows 1251, a kończąc na nowoczesnych kodowaniach Unicode Consortium UTF 16 i 8.

Niektórym ta informacja może wydawać się zbędna, ale czy wiecie, ile otrzymuję pytań dotyczących pełzających krakozyabrów (nieczytelny zestaw znaków). Teraz będę miał okazję odesłać wszystkich do tekstu tego artykułu i znaleźć własne błędy. Cóż, przygotuj się na przyswojenie informacji i staraj się podążać za biegiem historii.

ASCII - podstawowe kodowanie tekstu dla alfabetu łacińskiego

Rozwój kodowania tekstu nastąpił jednocześnie z powstaniem branży IT i w tym czasie udało się jej przejść całkiem sporo zmian. Historycznie rzecz biorąc, wszystko zaczęło się od dość dysonansowego w rosyjskiej wymowie EBCDIC, który umożliwił kodowanie liter alfabetu łacińskiego, cyfr arabskich i znaków interpunkcyjnych ze znakami kontrolnymi.

Mimo to za punkt wyjścia dla rozwoju współczesnego kodowania tekstu należy uznać sławny ASCII(Amerykański Standardowy Kodeks Wymiany Informacji, który w języku rosyjskim zwykle wymawia się jako „aski”). Opisuje pierwsze 128 znaków najczęściej używanych przez użytkowników anglojęzycznych - litery łacińskie, cyfry arabskie i znaki interpunkcyjne.

Te 128 znaków opisanych w kodzie ASCII zawierało także niektóre znaki usługowe, takie jak nawiasy, znaki krzyżyka, gwiazdki itp. W rzeczywistości możesz je zobaczyć sam:

To właśnie te 128 znaków z oryginalnej wersji ASCII stało się standardem i w każdym innym kodowaniu na pewno je znajdziesz i pojawią się w tej kolejności.

Ale faktem jest, że jednym bajtem informacji można zakodować nie 128, ale aż 256 różne znaczenia(dwa do potęgi ósmej równa się 256), więc następująco wersja podstawowa Pojawił się Askey cała linia rozszerzone kodowanie ASCII, w którym oprócz 128 znaków podstawowych możliwe było także zakodowanie symboli kodowania narodowego (np. rosyjskiego).

W tym miejscu warto chyba powiedzieć nieco więcej o systemach liczbowych zastosowanych w opisie. Po pierwsze, jak wszyscy wiecie, komputer działa tylko z liczbami w systemie dwójkowym, czyli zerami i jedynkami („algebra Boole’a”, jeśli ktoś to miał w instytucie lub szkole). , z których każdy jest dwójką do potęgi, zaczynając od zera i aż do dwójki do siódmej:

Nietrudno zrozumieć, że wszystkie możliwe kombinacje zer i jedynek w takim projekcie mogą wynosić tylko 256. Konwersja liczby z systemu binarnego na system dziesiętny jest dość prosta. Wystarczy dodać wszystkie potęgi dwójki do potęgi dwójki znajdującej się nad nimi.

W naszym przykładzie okazuje się, że to jest 1 (2 do potęgi zera) plus 8 (dwa do potęgi 3), plus 32 (dwa do potęgi piątej), plus 64 (do potęgi szóstej), plus 128 (do potęgi siódmej). Suma wynosi 233 w zapisie dziesiętnym. Jak widać, wszystko jest bardzo proste.

Ale jeśli przyjrzysz się uważnie tabeli ze znakami ASCII, zobaczysz, że są one reprezentowane w kodowaniu szesnastkowym. Na przykład „gwiazdka” odpowiada liczbie szesnastkowej 2A w języku Aski. Zapewne wiesz, że w systemie liczb szesnastkowych oprócz cyfr arabskich używane są także litery łacińskie od A (oznacza dziesięć) do F (oznacza piętnaście).

No cóż, dla tłumaczenie Liczba binarna do szesnastkowego zastosuj następującą prostą i oczywistą metodę. Każdy bajt informacji jest podzielony na dwie części po cztery bity, jak pokazano na powyższym zrzucie ekranu. To. W każdym półbajcie można zakodować tylko szesnaście wartości (dwa do potęgi czwartej) w formacie binarnym, co można łatwo przedstawić w postaci liczby szesnastkowej.

Co więcej, w lewej połowie bajtu stopnie będą musiały zostać policzone ponownie, zaczynając od zera, a nie jak pokazano na zrzucie ekranu. W rezultacie, poprzez proste obliczenia, otrzymujemy, że na zrzucie ekranu zakodowana jest liczba E9. Mam nadzieję, że tok mojego rozumowania i rozwiązanie tej zagadki były dla Państwa jasne. Cóż, teraz kontynuujmy rozmowę o kodowaniu tekstu.

Rozszerzone wersje Asuki - kodowanie CP866 i KOI8-R z pseudografiką

Zaczęliśmy więc rozmawiać o ASCII, który był niejako punktem wyjścia dla rozwoju wszystkich współczesnych kodowań (Windows 1251, Unicode, UTF 8).

Początkowo zawierał tylko 128 znaków alfabetu łacińskiego, cyfry arabskie i coś jeszcze, jednak w wersji rozszerzonej stało się możliwe wykorzystanie wszystkich 256 wartości, które można zakodować w jednym bajcie informacji. Te. Do Ask'a stało się możliwe dodawanie symboli liter Twojego języka.

W tym miejscu będziemy musieli ponownie zrobić dygresję, aby wyjaśnić - dlaczego w ogóle potrzebujemy kodowania? teksty i dlaczego jest to takie ważne. Znaki na ekranie Twojego komputera powstają w oparciu o dwie rzeczy - zbiory form wektorowych (reprezentacje) różnych znaków (znajdują się w plikach z ) oraz kod pozwalający wyciągnąć z tego zestawu form wektorowych (plik czcionek ) dokładnie ten znak, który należy wstawić we właściwym miejscu.

Oczywiste jest, że same czcionki odpowiadają za kształty wektorowe, ale system operacyjny i użyte w nim programy odpowiadają za kodowanie. Te. dowolny tekst na twoim komputerze będzie zbiorem bajtów, z których każdy koduje jeden znak tego właśnie tekstu.

Program wyświetlający ten tekst na ekranie (edytor tekstu, przeglądarka itp.) podczas analizowania kodu odczytuje kodowanie kolejnego znaku i szuka odpowiedniej postaci wektorowej w wymaganym pliku czcionki, który jest podłączony do wyświetlenia tego dokument tekstowy. Wszystko jest proste i banalne.

Oznacza to, że aby zakodować dowolny potrzebny nam znak (np. z alfabetu narodowego) muszą zostać spełnione dwa warunki - postać wektorowa tego znaku musi być w użytej czcionce oraz znak ten mógłby być zakodowany w rozszerzonym kodowaniu ASCII w jeden bajt. Dlatego istnieje cała gama takich opcji. Tylko do kodowania znaków języka rosyjskiego istnieje kilka odmian rozszerzonej Aska.

Na przykład pierwotnie pojawił się CP866, który miał możliwość używania znaków alfabetu rosyjskiego i był rozszerzoną wersją ASCII.

Te. jego górna część całkowicie pokrywała się z podstawową wersją Asuki (128 znaków łacińskich, cyfr i inne badziewia), co widać na zrzucie ekranu tuż powyżej, ale teraz Dolna część tabele z kodowaniem CP866 miały postać pokazaną na zrzucie ekranu tuż poniżej i pozwalały na zakodowanie kolejnych 128 znaków (litery rosyjskie i wszelkiego rodzaju pseudografiki):

Widzisz, w prawej kolumnie liczby zaczynają się od 8, ponieważ... cyfry od 0 do 7 odnoszą się do podstawowej części ASCII (patrz pierwszy zrzut ekranu). To. Rosyjska litera „M” w CP866 będzie miała kod 9C (znajduje się na przecięciu odpowiedniego wiersza z 9 i kolumny z liczbą C w systemie liczb szesnastkowych), który można zapisać w jednym bajcie informacji oraz jeśli istnieje odpowiednia czcionka z rosyjskimi znakami, litera ta bez problemów pojawi się w tekście.

Skąd wzięła się ta kwota? pseudografika w CP866? Rzecz w tym, że to kodowanie tekstu rosyjskiego zostało opracowane w tych kudłatych latach, kiedy graficzne systemy operacyjne nie były tak rozpowszechnione jak obecnie. A w Dosie i podobnych tekstowych systemach operacyjnych pseudografika pozwoliła przynajmniej w jakiś sposób urozmaicić konstrukcję tekstów, dlatego też CP866 i wszystkich innych jego rówieśników z kategorii rozszerzonych wersji Asuki nie brakuje w nim.

CP866 był dystrybuowany przez IBM, ale oprócz tego opracowano szereg kodowań dla znaków języka rosyjskiego, na przykład można przypisać ten sam typ (rozszerzony ASCII) KOI8-R:

Zasada jego działania pozostaje taka sama jak opisanego nieco wcześniej CP866 – każdy znak tekstu kodowany jest jednym bajtem. Zrzut ekranu pokazuje drugą połowę stołu KOI8-R, ponieważ pierwsza połowa jest całkowicie zgodna z podstawową Asuką, co pokazano na pierwszym zrzucie ekranu w tym artykule.

Wśród cech kodowania KOI8-R można zauważyć, że rosyjskie litery w jego tabeli nie są ułożone w kolejności alfabetycznej, jak to miało miejsce na przykład w CP866.

Jeśli spojrzysz na pierwszy zrzut ekranu (podstawowej części, która jest zawarta we wszystkich rozszerzonych kodowaniach), zauważysz, że w KOI8-R rosyjskie litery znajdują się w tych samych komórkach tabeli, co odpowiadające im litery alfabetu łacińskiego z pierwszej części tabeli. Dokonano tego dla wygody przełączania ze znaków rosyjskich na znaki łacińskie poprzez odrzucenie tylko jednego bitu (dwa do potęgi siódmej, czyli 128).

Windows 1251 - nowoczesna wersja ASCII i dlaczego pojawiają się pęknięcia

Dalszy rozwój kodowania tekstu wynikał z faktu, że graficzne systemy operacyjne zyskiwały na popularności i z czasem zanikła w nich konieczność stosowania pseudografiki. W rezultacie powstała cała grupa, która w istocie nadal była rozszerzoną wersją Asuki (jeden znak tekstu jest kodowany tylko jednym bajtem informacji), ale bez użycia symboli pseudograficznych.

Należały do ​​tzw. kodowań ANSI, które zostały opracowane przez American Standards Institute. W potocznym języku nazwa cyrylica była również używana dla wersji obsługującej język rosyjski. Przykładem może być.

Różnił się on korzystnie od stosowanych wcześniej CP866 i KOI8-R tym, że miejsce w nim symboli pseudograficznych zajęły brakujące symbole typografii rosyjskiej (z wyjątkiem znaku akcentu), a także symbole używane w językach słowiańskich zbliżonych do Rosyjski (ukraiński, białoruski itp.).):

Ze względu na tak dużą liczbę kodowań języka rosyjskiego, producenci i producenci czcionek oprogramowanie Ciągle pojawiały się bóle głowy, a ty i ja, drodzy czytelnicy, często dopadało nas to samo krakozyabry gdy doszło do zamieszania w związku z wersją zastosowaną w tekście.

Bardzo często pojawiały się podczas wysyłania i odbierania wiadomości e-mailem, co wiązało się z tworzeniem bardzo skomplikowanych tabel przeliczeniowych, które w rzeczywistości nie mogły zasadniczo rozwiązać tego problemu, a użytkownicy często korzystali z korespondencji, aby uniknąć notorycznych sztuczek podczas korzystania Rosyjskie kodowania, takie jak CP866, KOI8-R lub Windows 1251.

W rzeczywistości krakozyabry pojawiające się zamiast tekstu rosyjskiego były wynikiem nieprawidłowego użycia kodowania tego języka, który nie pasował do tego, w którym został zakodowany wiadomość tekstowa początkowo.

Na przykład, jeśli spróbujesz wyświetlić znaki zakodowane przy użyciu CP866, używając kodu Tabela Windows 1251, wówczas wyjdą te same bełkoty (bezsensowny zestaw znaków), całkowicie zastępując treść wiadomości.

Podobna sytuacja bardzo często ma miejsce na forach czy blogach, gdy tekst z rosyjskimi znakami jest omyłkowo zapisywany w złym kodowaniu, które jest domyślnie używane na stronie, lub w złym edytorze tekstu, co dodaje do kodu niewidoczne gagi. gołym okiem.

W końcu wiele osób zmęczyło się tą sytuacją z dużą ilością kodowań i ciągle pełzającymi błędami, pojawiły się przesłanki do stworzenia nowej uniwersalnej odmiany, która zastąpiłaby wszystkie istniejące i ostatecznie rozwiązałaby problem z pojawieniem się czytelne teksty. Dodatkowo pojawił się problem języków takich jak chiński, gdzie znaków językowych było znacznie więcej niż 256.

Unicode - uniwersalne kodowanie UTF 8, 16 i 32

Tych tysięcy znaków grupy języków Azji Południowo-Wschodniej nie dałoby się opisać w jednym bajcie informacji przeznaczonym do kodowania znaków w rozszerzonych wersjach ASCII. W rezultacie powstało konsorcjum pod nazwą Unikod(Unicode - Konsorcjum Unicode) przy współpracy wielu liderów branży IT (tych, którzy produkują oprogramowanie, którzy kodują sprzęt, którzy tworzą czcionki), którzy byli zainteresowani pojawieniem się uniwersalnego kodowania tekstu.

Pierwszą odmianą wydaną pod auspicjami Konsorcjum Unicode była UTF32. Liczba w nazwie kodowania oznacza liczbę bitów używanych do zakodowania jednego znaku. 32 bity to 4 bajty informacji, które będą potrzebne do zakodowania jednego znaku w nowym uniwersalnym kodowaniu UTF.

W rezultacie ten sam plik z tekstem zakodowanym w rozszerzonej wersji ASCII i w UTF-32, w tym drugim przypadku, będzie miał czterokrotnie większy rozmiar (wagę). To źle, ale teraz mamy możliwość zakodowania za pomocą YTF liczby znaków równej dwa do potęgi trzydziestej drugiej ( miliardy znaków, który pokryje każdą naprawdę niezbędną wartość z kolosalnym marginesem).

Ale dla wielu krajów z językami grupy europejskiej jest to wielka ilość Nie było w ogóle potrzeby używania znaków w kodowaniu, jednak przy użyciu UTF-32 nigdy nie uzyskano by czterokrotnego wzrostu wagi dokumentów tekstowych, a w rezultacie wzrostu wolumenu ruchu internetowego i objętość przechowywanych danych. To dużo i nikogo nie stać na takie marnotrawstwo.

W wyniku rozwoju Unicode, UTF-16, który okazał się na tyle udany, że domyślnie przyjęto go jako przestrzeń bazowa dla wszystkich symboli, których używamy. Do zakodowania jednego znaku używa dwóch bajtów. Zobaczmy jak ta sprawa wygląda.

W systemie operacyjnym Windows możesz podążać ścieżką „Start” - „Programy” - „Akcesoria” - „Narzędzia systemowe” - „Tabela znaków”. W rezultacie otworzy się tabela z kształtami wektorowymi wszystkich czcionek zainstalowanych w systemie. Jeśli wybierzesz w " Dodatkowe opcje» zestaw znaków Unicode, dla każdej czcionki z osobna można zobaczyć cały zakres znaków w niej zawartych.

Nawiasem mówiąc, klikając dowolny z nich, możesz zobaczyć jego dwubajt kod w formacie UTF-16, składający się z czterech cyfr szesnastkowych:

Ile znaków można zakodować w formacie UTF-16 przy użyciu 16 bitów? 65 536 (dwa do potęgi szesnastej) i to jest liczba, która została przyjęta jako przestrzeń bazowa w Unicode. Ponadto istnieją sposoby na zakodowanie za jego pomocą około dwóch milionów znaków, ale były one ograniczone do rozszerzonej przestrzeni miliona znaków tekstu.

Ale nawet ta udana wersja kodowania Unicode nie przyniosła wiele satysfakcji tym, którzy pisali na przykład programy tylko w język angielski, ponieważ po przejściu z rozszerzonej wersji ASCII na UTF-16 podwoiła się waga dokumentów (jeden bajt na znak w Aski i dwa bajty na ten sam znak w UTF-16).

Właśnie po to, aby zadowolić wszystkich i wszystko w konsorcjum Unicode, zdecydowano się wymyślić kodowanie o zmiennej długości. Nazywał się UTF-8. Pomimo ósemki w nazwie tak naprawdę ma zmienną długość, tj. Każdy znak tekstu można zakodować w sekwencji o długości od jednego do sześciu bajtów.

W praktyce UTF-8 wykorzystuje jedynie zakres od jednego do czterech bajtów, ponieważ poza czterema bajtami kodu nie da się już nawet teoretycznie wyobrazić sobie niczego. Wszystkie zawarte w nim znaki łacińskie są zakodowane w jednym bajcie, tak jak w starym, dobrym ASCII.

Co ciekawe, w przypadku kodowania wyłącznie alfabetu łacińskiego, nawet te programy, które nie rozumieją Unicode, i tak przeczytają to, co jest zakodowane w YTF-8. Te. podstawowa część Asuki została po prostu przeniesiona do tego stworzenia konsorcjum Unicode.

Znaki cyrylicy w UTF-8 są kodowane w dwóch bajtach, a na przykład znaki gruzińskie są kodowane w trzech bajtach. Konsorcjum Unicode po stworzeniu UTF 16 i 8 rozwiązało główny problem - teraz mamy czcionki mają pojedynczą przestrzeń kodową. A teraz ich producenci mogą wypełniać je jedynie wektorowymi formami znaków tekstowych, w oparciu o ich mocne strony i możliwości. Teraz występują nawet w zestawach.

W powyższej „Tabeli znaków” widać, że różne czcionki obsługują różną liczbę znaków. Niektóre czcionki bogate w Unicode mogą być dość ciężkie. Ale teraz różnią się nie tym, że zostały stworzone dla różnych kodowań, ale tym, że producent czcionek wypełnił lub nie całkowicie wypełnił przestrzeń pojedynczego kodu określonymi formami wektorowymi.

Szalone słowa zamiast rosyjskich liter - jak temu zaradzić

Zobaczmy teraz, jak pojawiają się krakozyabry zamiast tekstu, czyli innymi słowy, jak wybierane jest prawidłowe kodowanie tekstu rosyjskiego. Właściwie jest to ustawione w programie, w którym tworzysz lub edytujesz ten sam tekst, lub kodujesz za pomocą fragmentów tekstu.

Do edycji i tworzenia plików tekstowych osobiście używam, moim zdaniem, bardzo dobrego pliku . Może jednak podkreślać składnię setek innych języków programowania i znaczników, a także ma możliwość rozszerzenia za pomocą wtyczek. Czytać szczegółowa recenzja ten wspaniały program pod podanym linkiem.

W górne menu Notepad++ ma pozycję „Kodowanie”, w której będziesz mieć możliwość przekonwertowania istniejącej opcji na tę używaną domyślnie w Twojej witrynie:

W przypadku strony na Joomla 1.5 i nowszych oraz w przypadku bloga na WordPressie należy wybrać opcję uniknięcia pojawienia się pęknięć UTF 8 bez BOM-u. Jaki jest przedrostek BOM?

Faktem jest, że kiedy opracowywali kodowanie YUTF-16, z jakiegoś powodu postanowili dołączyć do niego coś takiego, jak możliwość zapisu kodu znaku zarówno w sekwencji bezpośredniej (na przykład 0A15), jak i odwrotnie (150A) . Aby programy mogły dokładnie zrozumieć, w jakiej kolejności czytać kody, wynaleziono je BOM(znacznik kolejności bajtów, czyli inaczej podpis), który wyrażał się poprzez dodanie trzech dodatkowych bajtów na samym początku dokumentów.

W kodowaniu UTF-8 w konsorcjum Unicode nie przewidziano żadnych BOM-ów, dlatego dodanie podpisu (tych notorycznie dodatkowych trzech bajtów na początku dokumentu) po prostu uniemożliwia niektórym programom odczytanie kodu. Dlatego zapisując pliki w formacie UTF musimy zawsze wybrać opcję bez BOM (bez podpisu). Więc jesteś z wyprzedzeniem chroń się przed pełzającymi krakozyabrami.

Co ciekawe, niektóre programy w systemie Windows nie mogą tego zrobić (nie mogą zapisywać tekstu w UTF-8 bez BOM), na przykład ten sam notoryczny Notatnik Windows. Zapisuje dokument w UTF-8, ale nadal dodaje podpis (trzy dodatkowe bajty) na jego początku. Co więcej, te bajty będą zawsze takie same - czytaj kod w bezpośredniej kolejności. Ale na serwerach z powodu tej drobnostki może pojawić się problem - wyjdą oszuści.

Dlatego pod żadnym pozorem Nie używaj zwykłego notatnika Windows do edycji dokumentów na Twojej stronie, jeśli nie chcesz, aby pojawiły się jakieś pęknięcia. Wspomniany już edytor Notepad++ uważam za najlepszą i najprostszą opcję, która praktycznie nie ma wad, a składa się wyłącznie z zalet.

W Notepad++ po wybraniu kodowania będziesz mieć możliwość konwersji tekstu na kodowanie UCS-2, które jest z natury bardzo zbliżone do standardu Unicode. Również w Notatniku możliwe będzie kodowanie tekstu w ANSI, tj. w odniesieniu do języka rosyjskiego będzie to Windows 1251, o którym pisaliśmy już powyżej, skąd pochodzą te informacje?

Jest zarejestrowany w rejestrze Twojej sali operacyjnej Systemy Windows- jakie kodowanie wybrać w przypadku ANSI, jakie wybrać w przypadku OEM (dla języka rosyjskiego będzie to CP866). Jeśli ustawisz na swoim komputerze inny język domyślny, kodowania te zostaną zastąpione podobnymi z kategorii ANSI lub OEM dla tego samego języka.

Po zapisaniu dokumentu w Notepad++ w potrzebnym kodowaniu lub otwarciu dokumentu ze strony do edycji, jego nazwę możesz zobaczyć w prawym dolnym rogu edytora:

Aby uniknąć wieśniaków Oprócz działań opisanych powyżej przydatne będzie zapisanie informacji o tym kodowaniu w nagłówku kodu źródłowego wszystkich stron witryny, aby nie było zamieszania na serwerze lub hoście lokalnym.

Ogólnie rzecz biorąc, wszystkie języki znaczników hipertekstowych z wyjątkiem HTML używają specjalnej deklaracji XML, która określa kodowanie tekstu.

Przed analizą kodu przeglądarka wie, która wersja jest używana i jak dokładnie musi interpretować kody znaków tego języka. Warto jednak zauważyć, że jeśli zapiszesz dokument w domyślnym Unicode, wówczas tę deklarację XML można pominąć (kodowanie zostanie uznane za UTF-8, jeśli nie ma BOM lub UTF-16, jeśli jest BOM).

W przypadku dokumentu w języku HTML do wskazania służy kodowanie Element meta, który jest zapisany pomiędzy otwierającym i zamykającym tagiem Head:

... ...

Wpis ten różni się znacznie od przyjętego w, ale jest w pełni zgodny z nowym, powoli wprowadzanym standardem HTML 5 i będzie w pełni poprawnie zrozumiały przez każdą obecnie używaną przeglądarkę.

Teoretycznie element Meta wskazujący kodowanie Dokument HTML lepiej byłoby założyć możliwie najwyżej w nagłówku dokumentu tak, aby w momencie napotkania w tekście pierwszego znaku spoza podstawowego ANSI (które zawsze są odczytywane poprawnie i w dowolnej odmianie) przeglądarka powinna już posiadać informację jak interpretować kody tych znaków.

Powodzenia! Do zobaczenia wkrótce na stronach bloga

Możesz obejrzeć więcej filmów, przechodząc do
");">

Możesz być zainteresowany

Co się stało Adresy URL Jaka jest różnica między linkami bezwzględnymi i względnymi do witryny?
OpenServer - nowoczesny serwer lokalny oraz przykład jego wykorzystania do instalacji WordPressa na komputerze
Co to jest Chmod, jakie uprawnienia nadawać plikom i folderom (777, 755, 666) i jak to zrobić poprzez PHP
Wyszukiwanie Yandex według witryny i sklepu internetowego