Kody kontrolne C0 i C1 - C0 and C1 control codes

W C0 i C1 kod sterujący lub kontroli postaci zestawów zdefiniować kody sterujące do użytku w tekście przez systemy komputerowe, że stosowanie ASCII i pochodne ASCII. Kody stanowią dodatkowe informacje o tekście, takie jak położenie kursora, polecenie rozpoczęcia nowej linii lub komunikat, że tekst został odebrany.

Kody C0 to zakres 00 HEX –1F HEX, a domyślny zestaw C0 został pierwotnie zdefiniowany w ISO 646 ( ASCII ). Kody C1 to zakres 80 HEX –9F HEX, a domyślny zestaw C1 został pierwotnie zdefiniowany w ECMA-48 (zharmonizowany później z ISO 6429). ISO / IEC 2022 system określania kontroli i innych znaków graficznych pozwala C0 i C1 zestawy mają być dostępne dla wyspecjalizowanych aplikacji, ale są one rzadko stosowane.

Sterowanie C0

ASCII zdefiniowało 32 znaki kontrolne plus jeden dodatkowy niezbędny dla znaku all-1 DEL (potrzebny do wybicia wszystkich otworów na taśmie papierowej i wymazania go).

Ta duża liczba kodów była wówczas pożądana, ponieważ sterowanie wielobajtowe wymagałoby implementacji w terminalu automatu stanu, co było bardzo trudne w przypadku współczesnych terminali elektronicznych i mechanicznych. Od tego czasu tylko kilka oryginalnych elementów sterujących zachowało swoje zastosowanie: zakres „białych znaków” BS, TAB, LF, VT, FF i CR; kod BEL; i ESC (ale, z wyjątkiem ISO-2022-JP , prawie zawsze jako część ESC,'[' reprezentacja CSI rozpoczynająca sekwencję ucieczki ANSI ). Inne są nieużywane lub mają inne znaczenia, takie jak NUL jako terminator łańcucha C.

Niektóre protokoły transmisji szeregowej, takie jak ANPA-1312 , Kermit i XMODEM , w dużym stopniu wykorzystują znaki kontrolne SOH, STX, ETX, EOT, ACK, NAK i SYN w celu przybliżenia ich oryginalnych definicji.

Podstawowe kody kontrolne ASCII

Są to standardowe kody kontrolne ASCII, pierwotnie zdefiniowane w ANSI X3.4 . W przypadku korzystania z mechanizmu rozszerzenia ISO/IEC 2022 są one oznaczane jako aktywny zestaw znaków kontrolnych C0 z sekwencją oktetów 0x1B 0x21 0x40( ESC ! @).

Kolejny Grudzień Klątwa Skrót Symbol Nazwa C Opis
^@ 00 00 NUL Zero \0 Pierwotnie używany, aby umożliwić pozostawienie przerw na taśmie papierowej do edycji. Później używane do wypełniania po kodzie, którego przetwarzanie może zająć terminalowi trochę czasu (np. powrót karetki lub wysunięcie wiersza na terminalu drukującym). Teraz często używany jako terminator ciągów znaków, zwłaszcza w języku programowania C.
^A 01 01 SOH Początek nagłówka W transmisji wiadomości ogranicza początek nagłówka wiadomości. Format tego nagłówka może być zdefiniowany przez odpowiedni protokół, taki jak IPTC 7901 dla transmisji tekstów dziennikarskich, i zazwyczaj jest on zakończony przez STX. W Hadoop jest często używany jako separator pól.
^B 02 02 STX Początek tekstu Pierwszy znak tekstu wiadomości i może być użyty do zakończenia nagłówka wiadomości.
^C 03 03 ETX Koniec tekstu W transmisji wiadomości ogranicza koniec głównego tekstu wiadomości. Może następować „informacja post-tekstowa” (tj. ustrukturyzowana stopka) zdefiniowana przez odpowiedni protokół lub wszelkie dodatkowe teksty, po których następuje EOT. W danych wejściowych z klawiatury, często używany jako znak „przerwania” (Ctrl-C) do przerwania lub zakończenia programu lub procesu.
^D 04 04 EOT Koniec transmisji Ogranicza koniec przesyłanej wiadomości, która może zawierać nagłówek, tekst wiadomości i stopkę post-tekstu, a nawet wiele tekstów i powiązanych nagłówków. Może być również używany do przełączania terminali w stan czuwania. Często używane w Uniksie do wskazania końca pliku na terminalu, interpretowane przez powłokę jako polecenie exitlub logout.
^E 05 05 ENQ Zapytanie Sygnał przeznaczony do wywołania odpowiedzi po stronie odbiorczej, aby sprawdzić, czy nadal jest obecny.
^F 06 06 POTWIERDZ Uznawać Odpowiedź na ENQ lub wskazanie pomyślnego odebrania wiadomości.
^G 07 07 BEL Dzwonek , Alarm \a Pierwotnie używany do bicia dzwonka na terminalu. Później używany jako sygnał dźwiękowy w systemach, które nie miały fizycznego dzwonka. Może również szybko włączać i wyłączać odwrotne wideo (dzwonek wizualny).
^H 08 08 BS Backspace \b Przesuń kursor o jedną pozycję w lewo. Przy wejściu może to usunąć znak na lewo od kursora. Na wyjściu, gdzie we wczesnej technologii komputerowej znak raz wydrukowany nie mógł zostać wymazany, cofanie było czasami używane do generowania znaków akcentowanych w ASCII. Na przykład àmoże być utworzony przy użyciu sekwencji trzech znaków a BS `(lub przy użyciu wartości szesnastkowych znaków, 0x61 0x08 0x60). To użycie jest obecnie generalnie nieobsługiwane (jest zabronione na przykład w ISO/IEC 8859 ). Aby zapewnić rozróżnienie między dwoma potencjalnymi zastosowaniami backspace, kod kontrolny znaku anulowania został wprowadzony jako część standardowego zestawu kontrolnego C1.
^I 09 09 HT Tablica znaków, tablica pozioma \t Pozycja do następnego znaku tabulatora .
^J 10 0A LF Podawanie linii \n Na maszynach do pisania , drukarkach i niektórych emulatorach terminali przesuwa kursor w dół o jeden wiersz bez wpływu na jego pozycję w kolumnie. W systemie Unix używany do oznaczania końca linii . W DOS , Windows , i różnych standardach sieciowych LF jest używany po CR jako część znaku końca linii.
^K 11 0B VT Tabulacja liniowa, tabulacja pionowa \v Umieść formularz na kolejnym tabulatorze wiersza.
^L 12 0C FF Kanał formularza \f W drukarkach załaduj następną stronę. Traktowane jako białe znaki w wielu językach programowania i mogą być używane do oddzielania podziałów logicznych w kodzie. W niektórych emulatorach terminali czyści ekran. Nadal pojawia się w niektórych zwykłych plikach tekstowych jako znak podziału strony , na przykład w dokumentach RFC opublikowanych przez IETF .
^M 13 0D CR Zwrot karetki \r Pierwotnie używany do przesuwania kursora do kolumny zero, pozostając w tym samym wierszu. W klasycznym systemie Mac OS (pre- Mac OS X ), a także we wcześniejszych systemach, takich jak Apple II i Commodore 64 , służy do oznaczania końca linii . W DOS , Windows , i różnych standardach sieciowych jest używany przed LF jako część znaku końca linii. Klawisz Enter lub Return na klawiaturze wyśle ​​ten znak, ale może on zostać przekonwertowany na inną sekwencję końca wiersza przez program terminala.
^N 14 0E WIĘC Przesuń się Przełącz się na alternatywny zestaw znaków.
^O 15 0F SI Przesunięcie w Wróć do zwykłego zestawu znaków po Shift Out.
^P 16 10 DLE Ucieczka łącza danych Powoduje, że ograniczona liczba sąsiadujących oktetów jest interpretowana w inny sposób, na przykład jako surowe dane (w przeciwieństwie do kodów sterujących lub znaków graficznych). Szczegóły tego są zależne od implementacji.

Standardy takie jak (obecnie wycofany) ECMA-37 istniały dla określonych zastosowań znaku Data Link Escape w celu uzyskania dostępu do dodatkowych funkcji sterowania transmisją.

Standardowy schemat kompresji dla Unicode sugeruje zastąpienie wszystkich bajtów z zakresu C0 przez DLE, po którym następuje ten bajt plus 0x40, jeśli dane SCSU muszą być przesyłane przez system, który byłby zdezorientowany przez zmianę przeznaczenia bajtów C0 przez SCSU.

^Q 17 11 DC1 Kontrola urządzenia 1 ( XON ) Te cztery kody sterujące są zarezerwowane do sterowania urządzeniem, a ich interpretacja zależy od urządzenia, do którego zostały podłączone. DC1 i DC2 miały przede wszystkim wskazywać aktywację urządzenia, podczas gdy DC3 i DC4 miały przede wszystkim wskazywać na wstrzymanie lub wyłączenie urządzenia. DC1 i DC3 (znane również jako odpowiednio XON i XOFF w tym użyciu) powstały jako funkcje "uruchamiania i zatrzymywania zdalnego czytnika taśm papierowych" w sieciach ASCII Telex . To użycie teledrukarki stało się de facto standardem w kontroli przepływu oprogramowania .
^R 18 12 DC2 Kontrola urządzenia dwa
^S 19 13 DC3 Kontrola urządzenia trzy ( XOFF )
^T 20 14 DC4 Kontrola urządzenia cztery
^U 21 15 NAK Negatywne Potwierdzenie Wysyłane przez stację jako negatywna odpowiedź do stacji, z którą nawiązano połączenie. W binarnym protokole komunikacji synchronicznej NAK jest używany do wskazania, że ​​wykryto błąd w poprzednio odebranym bloku i że odbiornik jest gotowy do przyjęcia retransmisji tego bloku. W systemach wielopunktowych NAK jest używany jako odpowiedź o braku gotowości do ankiety.
^V 22 16 SYN Synchroniczny bezczynność Stosowany w systemach transmisji synchronicznej do dostarczania sygnału, z którego można uzyskać synchroniczną korekcję między urządzeniami terminala danych, zwłaszcza gdy nie jest transmitowany żaden inny znak.
^W 23 17 ETB Koniec bloku transmisji Wskazuje koniec bloku transmisji danych, gdy dane są dzielone na takie bloki dla celów transmisji.

Jeśli nie jest używany w innym celu, IPTC 7901 zaleca interpretację ETB jako znaku końca akapitu.

^X 24 18 MÓC Anulować Wskazuje, że poprzedzające go dane są błędne lub mają zostać zignorowane.
^Y 25 19 EM Koniec medium Służy do wskazywania na papierze lub taśmach magnetycznych, że osiągnięto koniec użytecznej części taśmy. Może również oznaczać koniec zużytej części nośnika i niekoniecznie odpowiada fizycznemu końcowi nośnika.

Jeśli nie jest używany do innych celów, IPTC 7901 zaleca ponowne wykorzystanie EM jako miejsca em do wcięcia pierwszego wiersza akapitu (patrz również EMSP ).

^Z 26 1A POD Zastąpić Pierwotnie przeznaczony do użycia jako znak sterujący transmisją, wskazujący, że otrzymano zniekształcone lub nieprawidłowe znaki. Często używano go do innych celów, gdy sygnalizacja w paśmie błędów, którą zapewnia, jest niepotrzebna, zwłaszcza gdy stosowane są niezawodne metody wykrywania i korekcji błędów lub gdy oczekuje się, że błędy będą wystarczająco rzadkie, aby użyć znaku do wskazane inne cele. W DOS , Windows , CP/M i pochodnych systemów operacyjnych Digital Equipment Corporation jest używany do oznaczania końca pliku, zarówno podczas pisania na terminalu, jak i czasami w plikach tekstowych przechowywanych na dysku.
^[ 27 1B WYJŚCIE Ucieczka \e Klawisz Esc na klawiaturze spowoduje wysłanie tego znaku w większości systemów. Może być używany w programowych interfejsach użytkownika do wychodzenia z ekranu, menu lub trybu, lub w protokołach sterowania urządzeniami (np. drukarki i terminale), aby zasygnalizować, że następuje specjalna sekwencja poleceń, a nie zwykły tekst. W systemach opartych na normie ISO/IEC 2022 , nawet jeśli używany jest inny zestaw kodów kontrolnych C0, ten oktet musi zawsze reprezentować znak ucieczki.

^\ 28 1C FS Separator plików Może służyć jako ograniczniki do oznaczania pól struktur danych. Jeśli jest używany dla poziomów hierarchicznych, US jest najniższym poziomem (dzieląc elementy danych w postaci zwykłego tekstu), podczas gdy RS, GS i FS mają rosnący poziom, aby podzielić grupy złożone z elementów poziomu poniżej.

Informacji Unix format używa USA, a następnie za pomocą opcjonalnego formularza paszowej i koniec linii, aby zaznaczyć początek węzła.

MARC 21 wykorzystuje US jako ogranicznik podpola, RS jako terminator pola i GS jako terminator rekordu.

W aktualnym wydaniu IPTC 7901 , jeśli nie są one wykorzystywane do innych celów, US jest zalecany do stosowania jako separator kolumn w tabelach, FS jako „Central Field Separator” w tabelach, a GS i RS odpowiednio do oznaczania następnej przestrzeni lub myślnik-minus jako odpowiednio niełamliwe lub miękkie (w zestawach znaków nie dostarczających wyraźnych znaków NBSP i SHY).

Python jest splitlinesmetoda ciąg traktuje FS, GS i RS, ale nie nas, jako separatory oprócz znaków linii łamania.

^] 29 1D GS Separator grupowy
^^ 30 1E RS Separator rekordów
^_ 31 1F nas Separator jednostek
Chociaż technicznie nie należą do zakresu znaków sterujących C0, następujące dwa znaki są zdefiniowane w normie ISO/IEC 2022 jako zawsze dostępne, niezależnie od tego, który zestaw znaków sterujących i znaków graficznych został zarejestrowany. Można je traktować jako posiadające pewne cechy postaci kontrolnych.
  32 20 SP Przestrzeń Spacja to znak graficzny. Posiada reprezentację wizualną polegającą na braku znaku graficznego. Powoduje to, że aktywna pozycja zostanie przesunięta o jedną pozycję znaku. W niektórych aplikacjach spację można uznać za „separator słów” najniższego poziomu, który ma być używany z sąsiednimi znakami separatora.
^? 127 7F DEL Kasować Technicznie nie jest to część gamy znaków kontrolnych C0, pierwotnie była używana do zaznaczania usuniętych znaków na taśmie papierowej, ponieważ każdy znak można było zmienić na wszystkie, dziurkując wszędzie dziury. Na terminalach kompatybilnych z VT100 jest to znak generowany przez klawisz oznaczony ⌫, zwykle nazywany backspace na nowoczesnych maszynach i nie odpowiada klawiszowi usuwania komputera PC .

Nazwy kategorii

Kilka podstawowych kodów kontrolnych ASCII jest podzielonych na kilka kategorii, a czasami otrzymują alternatywne nazwy skrócone składające się z tej kategorii i numeru:

  • Sterowanie skrzynią biegów: TC 1 (SOH), TC 2 (STX), TC 3 (ETX), TC 4 (EOT), TC 5 (ENQ), TC 6 (ACK), TC 7 (DLE), TC 8 (NAK) , TC 9 (SYN), TC 10 (ETB).
  • Efektory formatów: FE 0 (BS), FE 1 (HT), FE 2 (LF), FE 3 (VT), FE 4 (FF), FE 5 (CR).
  • Sterowanie urządzeniami: DC 1 , DC 2 , DC 3 , DC 4 .
  • Separatory informacji: IS 1 (US), IS 2 (RS), IS 3 (GS), IS 4 (FS).
  • Przerzutki blokujące: LS 0 (SI), LS 1 (SO).
  • Inne: NUL, BEL, CAN, EM, SUB, ESC.

ISO/IEC 2022 (ECMA-35) odnosi się do przesunięć blokowania C0 jako LS0 i LS1 w środowiskach 8-bitowych oraz jako SI i SO w środowiskach 7-bitowych.

Pierwsza edycja ASCII z 1963 roku sklasyfikowała DLE jako kontrolę urządzenia, a nie kontrolę transmisji, i nadała mu skrót DC0 ("kontrola urządzenia zarezerwowana dla ucieczki łącza danych").

Kody efektora formatującego (FE) definiują i uruchamiają formatowanie (takie jak podziały wierszy ), które wpływa na sposób rozmieszczania i renderowania znaków graficznych, w przeciwieństwie do sterowania innymi funkcjami urządzeń sprzętowych lub innych efektów ubocznych. Efektory formatu C0 są dozwolone w sekwencjach ISO/IEC 6429 DCS , OSC , PM i APC . Separatory informacji i efektory formatu C0 (minus BS ) są jedynymi kodami kontrolnymi C0 z semantyką zdefiniowaną przez standard Unicode, a interpretacja pozostałych kontrolek C0 jest pozostawiona protokołom wyższego poziomu.

ISO/IEC 2022 (ECMA-35) wymaga, aby jeśli zestawy kodów kontrolnych C0 zawierały dziesięć kodów kontroli transmisji ASCII (TC), muszą być one zakodowane w ich lokalizacjach ASCII. Zabrania również włączania tych dziesięciu elementów sterujących transmisją do zestawu kodów sterujących C1 i zabrania dołączania elementów sterujących transmisją oprócz tych dziesięciu do zestawu sterującego C0.

Zmodyfikowane zestawy kodów kontrolnych C0

Chociaż zestawy kodów sterujących C0 zwykle zachowują większość kodów sterujących ASCII bez zmian, rejestrowany jest numer, który zastępuje niektóre funkcje sterujące alternatywami. Poniżej przedstawiono wybrane z nich, z wyjątkiem tych związanych z Videotex .

Kolejny Grudzień Klątwa Zastąpiono W zestawach kodów Skrót Nazwa Opis
^I 09 09 HT NATS, IPTC NS Formatowanie Używane w danych tabelarycznych do przechodzenia do następnej pozycji w tabeli (zachowując semantykę „Tab” w tym zakresie) oraz w standardowych formatach do oznaczania następnej fazy. Obecna specyfikacja IPTC zaleca zamiast tego używanie zwykłych kontrolek ASCII C0 i używanie kontrolki US jako podziału kolumn w tabelach.
^K 11 0B VT NATS, IPTC ECD Koniec instrukcji Ogranicza koniec instrukcji typograficznej przeznaczonej dla składu.
^L 12 0C FF NATS, IPTC SCD Początek instrukcji Ogranicza początek instrukcji typograficznej przeznaczonej dla urządzenia do składu tekstu.
^M 13 0D CR NATS, IPTC QL Czwórka w lewo Kończy linię, wskazując, że powinna być wyrównana do lewej. Obecna specyfikacja IPTC zaleca zamiast tego używanie zwykłych kontrolek ASCII C0 i reprezentowanie tej funkcji za pomocą < CR LFsekwencji.
^N 14 0E WIĘC NATS UR Szyna górna Rozpoczyna wyróżniony obszar tekstu. Używany w skandynawskim przekazie tekstów dziennikarskich od 1975 r.; Zalecenia IPTC z 1976 r. wykorzystywały zamiast tego FT2 i FT3 (patrz poniżej). Obecna specyfikacja IPTC zaleca zamiast tego używanie zwykłych kontrolek ASCII C0 i oznaczanie tej funkcji ^znakiem.
^O 15 0F SI NATS LR Szyna dolna Kończy wyróżniony obszar tekstu. Używany w skandynawskim przekazie tekstów dziennikarskich od 1975 r.; Zalecenia IPTC z 1976 r. wykorzystywały zamiast tego FT1 (patrz poniżej). Obecna specyfikacja IPTC zaleca zamiast tego używanie zwykłych kontrolek ASCII C0 i oznaczanie tej funkcji @znakiem.
^Q 17 11 DC1 IPTC FT1 Czcionka pierwsza Przełącza na zwykły krój pisma, tj. wyłącza pogrubienie lub kursywę.
^R 18 12 DC2 IPTC FT2 Czcionka druga Przełącza na krój kursywy.
^S 19 13 DC3 IPTC FT3 Czcionka trzecia Przełącza na pogrubiony krój.
^X 24 18 MÓC NATS, IPTC KW Zabij słowo Usuwa poprzednie słowo (usuwa z powrotem do ostatniego miejsca włącznie lub z powrotem do poprzedniego łamania wiersza i wyklucza, w zależności od tego, które napotka jako pierwsze). Zachowuje semantykę „Anuluj” pod tym względem, ale pełni bardziej konkretną funkcję.
^Y 25 19 EM T.61 / T.51 , samodzielny SS2 Pojedyncza zmiana druga Nieblokujący kod zmiany biegów dla G2 ; reprezentacja C0 pozwalająca na reprezentowanie go jednym bajtem w środowisku 7-bitowym.
^\ 28 1C FS NATS, IPTC, samodzielny SS, SS2 Super zmiana lub pojedyncza zmiana 2 Nieblokujący kod zmiany biegów .
JIS C 6225 CEX Rozszerzenie sterowania Wprowadza sekwencję kontrolną określoną przez wycofany obecnie JIS C 6225, oznaczony jako JIS X 0207 w późniejszych źródłach. Obejmowały one sekwencje do kontrolowania zachowania tekstu pionowego, indeksy górne i dolne oraz do przesyłania niestandardowych grafik znakowych .
^] 29 1D GS NATS, IPTC Kontrola jakości Centrum Quad Kończy linię, wskazując, że powinna być wyśrodkowana.
T.61 / T.51 SS3 Pojedyncza zmiana trzecia Nieblokujący kod zmiany biegów dla G3 ; reprezentacja C0 pozwalająca na reprezentowanie go jednym bajtem w środowisku 7-bitowym.
^^ 30 1E RS NATS, IPTC QR Czwórka w prawo Kończy linię, wskazując, że powinna być wyrównana do prawej.
^_ 31 1F nas NATS, IPTC JY Uzasadniać Kończy linię, która ma być wyjustowana.

Inne zestawy kodów kontrolnych C0

Teletekst definiuje zupełnie inny zestaw kodów sterujących . W formatach, w których kompatybilność z kodami kontrolnymi C0 ECMA-48 nie jest wymagana, te kody kontrolne są czasami mapowane w sposób przezroczysty do zakresu kodów kontrolnych Unicode C0 (U+0000 do U+001F).

Sterowanie C1

Równolegle do opracowania edycji ISO 646 z 1972 r. , która zrewidowała standard, wprowadzając koncepcję krajowych wersji kodu oprócz ASCII pochodzącego z USA, trwały również prace mające na celu zdefiniowanie mechanizmów rozszerzeń dla ASCII, ma zastosowanie zarówno do środowisk 7-bitowych, jak i 8-bitowych, które zostałyby opublikowane jako ECMA-35 i ISO 2022 .

Mechanizmy te zostały zaprojektowane tak, aby dowolny zgodny kod 8-bitowy mógł zostać przekonwertowany na odpowiadający mu kod 7-bitowy i na odwrót . W środowisku 7-bitowym Out (Shift SO ) kontrola zmieniłoby sens 94 bajtów 0x21przez 0x7E(czyli kodów graficznych, z wyłączeniem przestrzeni), aby wywołać znaki z alternatywnego zestawu, a przesunięcie ( SI ) kontroli będzie zmień je z powrotem. W środowisku 8-bitowym, zamiast używać kodów przesunięcia, ósmy bit został ustawiony na bajcie odwołującym się do dodatkowego zestawu znaków graficznych. To oznaczało, że bajtów 0xA1poprzez 0xFEużyto dodatkowych znaków graficznych. Znaki kontrolne C0, na które nie ma wpływu stan przesunięcia kodu 7-bitowego, miały być zawsze reprezentowane w kodzie 8-bitowym z nieustawionym ósmym bitem. W konsekwencji nieużywane w inny sposób bajty z zakresu 0x80do 0x9Fmogą być użyte do dodatkowych kodów kontrolnych, które zamiast tego byłyby reprezentowane jako 0x1B 0x40przez 0x1B 0x5F( ESC @przez ESC _) w kodzie 7-bitowym. Te dodatkowe kody kontrolne są znane jako kody kontrolne C1 . Aby zachować zgodność z 7-bitową reprezentacją, zachowanie bajtów 0xA0i 0xFFpierwotnie pozostawiono niezdefiniowane.

Pierwszym zestawem kodów kontrolnych C1, który został zarejestrowany do użytku z ISO 2022, był DIN 31626 , wyspecjalizowany zestaw do użytku bibliograficznego, który został zarejestrowany w 1979 r. Zestaw ogólnego zastosowania ISO/IEC 6429 został zarejestrowany w 1983 r., chociaż specyfikacja ECMA-48 na którym został oparty, został po raz pierwszy opublikowany w 1976 roku.

Kolejne edycje standardów zmieniały w pewnym stopniu przepisy. Na przykład kolejna rewizja norm ECMA-35 i ISO 2022 z 1985 r. wprowadziła koncepcję zestawu znaków graficznych z 96 kodami. W 8-bitowym kodzie pozwoliło to na użycie całego zakresu od 0xA0do 0xFFdla znaków graficznych. Użycie zestawów 96-kodowych oznaczało również, że znaczenie bajtów 0x20i 0x7Fodpowiadającego im 7-bitowego kodu może różnić się od „Space” i „Delete”, chyba że kod był w stanie Shift In. Używanie zestawów 96-kodowych dla zestawu G0 (Shift In) nie było możliwe.

Zgodnie z tą poprawioną 8-bitową strukturą kodu ISO 2022, ISO 8859 definiuje zestawy znaków do zakodowania w zakresie 0xA0–FF, w połączeniu ze znakami graficznymi ASCII w zakresie 0x20–7E, i rezerwuje bajty poza tymi zakresami do wykorzystania jako kody niegraficzne według innych specyfikacji, takich jak ISO 6429. Unicode dziedziczy swoje pierwsze 256 punktów kodowych z ISO 8859-1, stąd obejmuje również zakres zarezerwowany dla zestawu kodów kontrolnych C1, chociaż w większości pozostawia ich funkcję do zdefiniowania na wyższym poziomie protokoły, z sugerowaną jako domyślną normą ISO/IEC 6429 .

Kody kontrolne C1 do ogólnego użytku

Są to najpopularniejsze kody rozszerzonej kontroli, zdefiniowane w normach ISO/IEC 6429 , ECMA-48 i JIS X 0211 (dawniej JIS C 6323). W przypadku korzystania z mechanizmu rozszerzenia ISO/IEC 2022 są one oznaczone jako aktywny zestaw znaków kontrolnych C1 za pomocą sekwencji 0x1B 0x22 0x43( ESC " C). Chociaż Unicode nie wymaga określonego zestawu kodów kontrolnych C1, pozostawiając ich interpretację do określenia przez protokoły wyższego poziomu i określa zachowanie tylko dla U + 0085, sugeruje interpretację kodów kontrolnych C1 zgodnie z normą ISO/IEC 6429 w przypadku braku wykorzystania do innych celów. W poniższej tabeli wymieniono również trzy kody kontrolne wymienione obok kodów ISO/IEC 6429 w RFC  1345 , ale w rzeczywistości nie zdefiniowane przez ISO/IEC 6429 ( PAD , HOP i SGC ).

Z wyjątkiem SS2 i SS3 w tekście EUC-JP oraz NEL w tekście transkodowanym z EBCDIC , 8-bitowe formy tych kodów prawie nigdy nie są używane. CSI , DCS i OSC są używane do sterowania terminalami tekstowymi i emulatorami terminali , ale prawie zawsze przy użyciu ich 7-bitowych reprezentacji kodu ucieczki. Ich jednobajtowe reprezentacje zgodne z ISO/IEC 2022 są nieprawidłowe w UTF-8 , a kodowanie UTF-8 odpowiadających im punktów kodowych ma długość dwóch bajtów, podobnie jak ich kody ucieczki (na przykład CSI w U + 009B jest zakodowany jako bajty 0xC2, 0x9B w UTF-8), więc nie ma korzyści z ich używania zamiast równoważnej dwubajtowej sekwencji ucieczki. Gdy te kody pojawiają się w nowoczesnych dokumentach, stronach internetowych, wiadomościach e-mail itp., zwykle są przeznaczone do drukowania znaków w tej pozycji w zastrzeżonym kodowaniu, takim jak Windows-1252 lub Mac OS Roman, które wykorzystują kody C1 w celu zapewnienia dodatkowe znaki graficzne.

Oficjalne angielskie nazwy niektórych kodów C1 zostały zrewidowane w najnowszym wydaniu standardu dotyczącego kodów kontrolnych w ogólności (ISO 6429:1992 lub ECMA-48:1991), aby były neutralne w odniesieniu do użytych znaków graficznych, oraz nie zakładać, że tak jak w alfabecie łacińskim wiersze są pisane na stronie od góry do dołu, a znaki są pisane w wierszu od lewej do prawej. Użyte skróty nie uległy zmianie, ponieważ norma już określała, że ​​pozostaną one niezmienione w przypadku tłumaczenia normy na inne języki. W przypadku zmiany nazwy oryginalna nazwa, od której pochodzi skrót, jest również podana w nawiasach w poniższych tabelach.

Esc+ Grudzień Klątwa Akron Nazwa Opis
@ 128 80 PODKŁADKA Wypełnienie charakter Nie jest częścią ISO/IEC 6429 (ECMA-48). We wczesnych projektach ISO 10646 był używany jako część proponowanego mechanizmu do kodowania znaków spoza ASCII. To zastosowanie zostało usunięte w późniejszych wersjach roboczych. Jest jednak używany przez dwubajtową formę o stałej długości do użytku wewnętrznego, opartego na ISO-2022 Extended Unix Code (EUC) dla lewostronnych znaków jednobajtowych w zestawach kodów 1 i 3, podczas gdy NUL pełni tę samą funkcję dla kodu ustawia 0 i 2. Nie jest to wykonywane w zwykłym "zapakowanym" formacie EUC.
A 129 81 CHMIEL Wysokie ustawienie oktetu Nie jest częścią ISO/IEC 6429 (ECMA-48). Na początku projekty norm ISO 10646, została pomyślana jako środków do wprowadzania sekwencji ISO 2022 zgodne kilka postaci bajt z tego samego pierwszego bajtu bez powtarzania wymienionego pierwszego bajtu, zmniejszając długość; to zachowanie nigdy nie było częścią standardowej lub opublikowanej implementacji. Jego nazwa została jednak zachowana jako standardowa nazwa punktu kodowego RFC  1345 .
b 130 82 BPH Przerwa dozwolona tutaj Występuje po znaku graficznym, w którym dozwolone jest łamanie wiersza. Z grubsza równoważne z łącznikiem miękkim, z tym wyjątkiem, że środkiem wskazującym na podział wiersza niekoniecznie jest łącznik. Nie jest częścią pierwszego wydania normy ISO/IEC 6429. Zobacz także przestrzeń o zerowej szerokości .
C 131 83 NBH Tutaj nie ma przerwy Podąża za znakiem graficznym, którego nie można złamać. Nie jest częścią pierwszej edycji ISO/IEC 6429. Zobacz także word joiner .
D 132 84 IND Indeks Przesuń aktywną pozycję o jedną linię w dół, aby wyeliminować niejasności dotyczące znaczenia LF. Przestarzałe w 1988 i wycofane w 1992 z ISO/IEC 6429 (odpowiednio 1986 i 1991 dla ECMA-48).
mi 133 85 NEL Następna linia Odpowiednik CR+LF. Służy do oznaczania końca linii na niektórych komputerach mainframe IBM.
F 134 86 SSA Początek wybranego obszaru Używany przez terminale blokowe .
g 135 87 ESA Koniec wybranego obszaru
h 136 88 HTS Zestaw Tablic Znaków Zestaw
Tablic Poziomych
Powoduje ustawienie zatrzymania tabulacji znaków w aktywnej pozycji.
i 137 89 HTJ Tablica znaków z wyrównywaniem Tablica
pozioma z wyrównywaniem
Podobnie jak w przypadku tabulacji znaków, z tą różnicą, że zamiast spacji lub linii umieszczanych po poprzedzających znakach aż do osiągnięcia następnego tabulatora, spacje lub linie są umieszczane przed aktywnym polem, tak że poprzedzający znak graficzny jest umieszczany tuż przed następnym tabulatorem.
J 138 8A VTS Zestaw
tabulacji liniowych Zestaw tabulacji pionowych
Powoduje, że w aktywnej pozycji ustawiany jest przystanek tabulacji wierszy.
K 139 8B PLD Częściowa linia do przodu
Częściowa linia w dół
Używany do tworzenia indeksów dolnych i górnych w normie ISO/IEC 6429 , np. w drukarce.
Indeksy używać podczas Indeksy górne używać . PLD text PLUPLU text PLD
L 140 8C PLU Częściowa linia wstecz
Częściowa linia w górę
m 141 8D RI Indeks odwrotnego wysuwu wiersza
n 142 8E SS2 Jednozmianowy 2 Następny znak przywołuje znak graficzny odpowiednio z zestawu graficznego G2 lub G3. W systemach zgodnych z normą ISO/IEC 4873 (ECMA-43), nawet jeśli używany jest zestaw C1 inny niż domyślny, te dwa oktety mogą być używane tylko w tym celu.
O 143 8F SS3 Pojedyncza zmiana 3
P 144 90 DCS Ciąg kontroli urządzenia Po którym następuje ciąg znaków drukowalnych (0x20 do 0x7E) i efektory formatu (0x08 do 0x0D), zakończone przez ST (0x9C). Może to być używane przez sekwencje sterujące o zmiennej długości dla terminali tekstowych i emulatorów terminali, takich jak  zapytania terminfo .
Q 145 91 PU1 Do użytku prywatnego 1 Zarezerwowane dla funkcji bez ujednoliconego znaczenia do użytku prywatnego zgodnie z wymaganiami, pod warunkiem uprzedniej zgody nadawcy i odbiorcy danych.
r 146 92 PU2 Do użytku prywatnego 2
S 147 93 STS Ustaw stan transmisji
T 148 94 CCH Anuluj postać Destrukcyjny backspace, mający na celu wyeliminowanie niejasności co do znaczenia BS .
U 149 95 MW Wiadomość oczekująca
V 150 96 SPA Początek obszaru chronionego Używany przez terminale blokowe .
W 151 97 EPA Koniec obszaru chronionego
x 152 98 SOS Początek struny Po którym następuje ciąg kontrolny zakończony przez ST (0x9C), który w przeciwieństwie do tych inicjowanych przez DCS , OSC , PM lub APC , może zawierać dowolny znak z wyjątkiem SOS lub ST. Nie jest częścią pierwszego wydania ISO/IEC 6429.

MARC 21 używa SOS i ST w rekordach w formacie Unicode do oznaczania łańcucha, który powinien być ignorowany do celów sortowania, podczas gdy rekordy w formacie MARC-8 używają NSB i NSE w tym samym celu.

Tak 153 99 SGC Wprowadzający pojedynczy znak graficzny Nie jest częścią normy ISO/IEC 6429. We wczesnych projektach normy ISO 10646 był używany do kodowania pojedynczego znaku wielobajtowego bez przełączania się z trybu HOP . W późniejszych projektach funkcja ta została usunięta, nazwa została jednak zachowana jako standardowa nazwa punktu kodowego RFC  1345 .
Z 154 9A SCI Wprowadzający pojedyncze znaki Po którym następuje pojedynczy znak drukowalny (0x20 do 0x7E) lub efektor formatu (0x08 do 0x0D). Intencją było zapewnienie środków, za pomocą których można by zdefiniować funkcję kontrolną lub znak graficzny, który byłby dostępny niezależnie od tego, które zestawy graficzne lub kontrolne byłyby używane. Definicje tego, co będzie wywoływał następny bajt, nigdy nie zostały zaimplementowane w międzynarodowym standardzie. Nie jest częścią pierwszego wydania ISO/IEC 6429.
[ 155 9B CSI Wprowadzający sekwencje kontrolne Służy do wprowadzania sekwencji sterujących, które pobierają parametry.
\ 156 9C NS Terminator ciągów Kończy ciąg sterujący o zmiennej długości zainicjowany przez DCS , SOS , OSC , PM lub APC .
] 157 9D OSC Polecenie systemu operacyjnego Po którym następuje ciąg znaków drukowalnych (0x20 do 0x7E) i efektory formatu (0x08 do 0x0D), zakończone przez ST (0x9C). Te trzy kody kontrolne były przeznaczone do użycia w celu umożliwienia sygnalizacji wewnątrzpasmowej informacji o protokole, ale rzadko są używane w tym celu.

Niektóre emulatory terminali , w tym xterm , obsługują sekwencje OSC do ustawiania tytułu okna i rekonfiguracji dostępnej palety kolorów. Mogą również obsługiwać zakończenie sekwencji OSC za pomocą BEL jako niestandardowej alternatywy dla standardowego ST.

APC jest czasami używany do przesyłania poleceń Kermit , chociaż może to być wyłączone lub filtrowane ze względów bezpieczeństwa.

^ 158 9E PO POŁUDNIU Wiadomość dotycząca prywatności
_ 159 9F APC Polecenie programu aplikacyjnego

Kody kontrolne C1 do użytku bibliograficznego

Następujący alternatywny zestaw kodów sterujących C1 jest zdefiniowany dla zastosowań bibliograficznych, takich jak systemy biblioteczne . Zajmuje się głównie sortowaniem ciągów i znacznikami pól bibliograficznych. Nieznacznie różne warianty są określone w niemieckiej normy DIN 31626 (opublikowanej w 1978 roku i od wycofanego) oraz ISO normy ISO 6630 , z których ostatni został również przyjęty w Niemczech jako DIN ISO 6630 . Tam, gdzie się one różnią, zaznaczono w tabeli poniżej, jeśli ma to zastosowanie. MARC-8 wykorzystuje kodowanie NSB i NSE z tego zestawu i dodaje kilka dodatkowych efektorów formatu w lokalizacjach nieużywanych przez wersję ISO; jednak MARC 21 używa tego zestawu kontrolnego tylko w rekordach MARC-8, a nie w rekordach w formacie Unicode.

W przypadku korzystania z mechanizmu rozszerzenia ISO/IEC 2022 , zestaw DIN 31626 jest oznaczony jako aktywny zestaw znaków kontrolnych C1 za pomocą sekwencji 0x1B 0x22 0x45( ESC " E), a zestaw ISO 6630 / DIN ISO 6630 jest oznaczony za pomocą sekwencji 0x1B 0x22 0x42( ESC " B). Rozszerzenie zestawu ISO 6630 z 1985 r. można również wyraźnie określić za pomocą sekwencji 0x1B 0x26 0x40 0x1B 0x22 0x42( ESC & @ ESC " B).

Esc+ Grudzień Klątwa Akron Nazwa Opis
@…F 128…134 80…86 - (skryty)
g 135 87 CUS Zbliżenie do sortowania (DIN 31626, ISO 6630) Deklaruje, że dwie kolejne sekwencje znaków oddzielone spacją lub separatorem powinny być traktowane jako jedno słowo do celów sortowania.
h 136 88 NPB Rozpoczęcie niesortowania znaków (DIN 31626, ISO 6630, MARC 21) Zaznacza początek sekwencji znaków, która ma być zignorowana do celów sortowania. MARC 21 używa tego znaku w rekordach MARC-8 , ale używa 0x98 ( SOS ) w rekordach Unicode w tym samym celu.
i 137 89 NSE Koniec znaków niesortujących (DIN 31626, ISO 6630, MARC 21) Zaznacza koniec sekwencji znaków, które należy zignorować w celu sortowania. MARC 21 używa tego znaku w rekordach MARC-8, ale używa 0x9C ( ST ) w rekordach Unicode w tym samym celu.
J 138 8A FIL Znak wypełniający (DIN 31626) Zastępuje obowiązkowy znak alfanumeryczny w polu.
K 139 8B TCI Tag we wskaźniku kontekstu (DIN 31626) W polu bibliograficznym, używany do odwoływania się do danych w innym polu bibliograficznym według numeru znacznika.
PLD Częściowa linia w dół (ISO 6630) Nie w oryginalnym wydaniu ISO 6630. W wydaniu ISO 6630 z 1985 r., używany do częściowego wyrównania w dół (patrz PLD powyżej).
L 140 8C ICI Numer identyfikacyjny we wskaźniku kontekstu (DIN 31626) W polu bibliograficznym, używany do odwoływania się do danych w innym rekordzie bibliograficznym poprzez jego numer identyfikacyjny.
PLU Częściowe ustawienie (ISO 6630) Nie w oryginalnym wydaniu ISO 6630. W wydaniu ISO 6630 z 1985 r., używany do częściowego wyrównania (patrz PLU powyżej).
m 141 8D OSC Opcjonalna kontrola sylabizacji (DIN 31626) Wyznacza granicę sylaby w długim słowie. Zobacz także łącznik miękki .
ZWJ Stolarz (MARC 21) W MARC-8, używany do łączenia o zerowej szerokości , podczas gdy U+200D jest używany w rekordach MARC w formacie Unicode.
n 142 8E SS2 Jednozmianowy 2 (DIN 31626) Nieblokujący kod zmiany biegów, patrz SS2 powyżej.
ZWNJ Nie-stolarz (MARC 21) W MARC-8, używany dla Zero-Width Non-Joiner , podczas gdy U+200C jest używany w rekordach MARC w formacie Unicode.
O 143 8F SS3 Pojedyncza zmiana 3 (DIN 31626) Nieblokujący kod zmiany biegów, patrz SS3 powyżej.
P 144 90 - (skryty)
Q 145 91 EAB Początek osadzonej adnotacji (DIN 31626, ISO 6630) Oznacza początek adnotacji o zmiennej długości, która jest osadzona w polu bibliograficznym, w przeciwieństwie do oddzielonej za pomocą oznaczenia treści.
r 146 92 EAE Osadzone zakończenie adnotacji (DIN 31626, ISO 6630) Oznacza koniec osadzonej adnotacji o zmiennej długości.
S 147 93 JEST B Początek specyfikacji przedmiotu (DIN 31626) Oznacza początek ciągu zawierającego określone informacje o pewnym opisie, innym niż słowo kluczowe lub ciąg permutacji.
T 148 94 ISE Pozycja Specyfikacja Koniec (DIN 31626) Oznacza koniec ciągu określonych informacji.
U 149 95 SIB Początek interpolacji sortowania (ISO 6630) Zaznacza początek sekwencji znaków używanej wyłącznie do celów sortowania.
V 150 96 SIE Koniec interpolacji sortowania (ISO 6630) Oznacza koniec sekwencji znaków używanych wyłącznie do celów sortowania.
W 151 97 SSB Początek drugorzędnej wartości sortowania (ISO 6630) Oznacza początek ciągu z podrzędną wartością sortowania.
x 152 98 SSE Drugorzędna wartość sortowania Koniec (ISO 6630) Oznacza koniec ciągu podrzędną wartością sortowania.
Tak 153 99 INC Wskaźnik znaku niestandardowego (DIN 31626) Identyfikuje następujący niestandardowy znak.
Z 154 9A - (skryty)
[ 155 9B - (skryty)
\ 156 9C KWB Początek słowa kluczowego (DIN 31626, ISO 6630) Oznacza początek słowa kluczowego w polu bibliograficznym.
] 157 9D KWE Koniec słowa kluczowego (DIN 31626, ISO 6630) Oznacza koniec słowa kluczowego w polu bibliograficznym.
^ 158 9E PSB Początek ciągu permutacji (DIN 31626, ISO 6630) Zaznacza początek ciągu, który ma być permutowany na przód elementu podczas generowania referencji lub indeksów . Zakończony przez PSE lub do końca elementu.
_ 159 9F PSE Koniec ciągu permutacji (DIN 31626, ISO 6630) Oznacza koniec sznurka, który ma być permutowany z przodu elementu.

Inne zestawy kodów kontrolnych C1

EBCDIC definiuje 16 dodatkowych kodów kontrolnych, oprócz tych występujących w ASCII. W przypadku odwzorowania na Unicode lub ISO 8859 kody te są odwzorowywane na znaki sterujące C1 w sposób określony przez IBM Character Data Representation Architecture (CDRA).

Chociaż domyślne mapowanie kontrolki New Line (NL) odpowiada normie ISO/IEC 6429 NEL (0x85; chociaż jej mapowanie jest czasami zamieniane z LF, zgodnie z konwencją zakończenia linii UNIX), pozostałe kody sterujące nie odpowiadają ISO/IEC 6429. Na przykład, kontrolna EBCDIC SPS (0x09, mapowana na 0x8D) i kontrolna PLU ECMA-48 (0x8C) są używane do rozpoczęcia indeksu górnego lub zakończenia indeksu dolnego, ale nie są do siebie mapowane. EBCDIC z rozszerzonym odwzorowaniem ASCII można zatem uznać za posiadający własny zestaw C1, chociaż nie jest on zarejestrowany w rejestrze ISO-IR do użytku z normą ISO/IEC 2022 .

Różne wyspecjalizowane zestawy kodów sterujących C1 są zarejestrowane do użytku przez różne formaty Videotex .

Unicode

Unicode odkłada 65 punktów kodowych w ogólnej kategorii „Cc” (Kontrola) w celu zapewnienia zgodności z normą ISO/IEC 2022 . Kody kontrolne w tej kategorii obejmują U+0000-U+001F (kontrole C0), U+007F (usuń) i U+0080-U+009F (kontrole C1). Unicode określa semantykę tylko dla U+0009—U+000D, U+001C—U+001F i U+0085. Pozostałe kody kontrolne są przezroczyste dla Unicode, a ich znaczenie pozostawia się protokołom wyższego poziomu.

Unicode nie ma przydzielonych punktów kodowych kategorii „Cc” innych niż C0 i C1. Zawiera jednak dodatkowe znaki efektora formatującego oprócz tych w zestawach kontrolnych C0 i C1, takie jak znaczniki, osadzania, izolacje i pop dla jawnego formatowania dwukierunkowego oraz łącznik o zerowej szerokości i nie łącznik do kontrolowania użycia ligatur. Nadano im ogólną kategorię „Cf” (Format) zamiast „Cc”.

Zobacz też

Przypisy

Bibliografia