Czy BOM (Byte Order Mark) jest znakiem kontrolnym?

3

Wiem, że w komputerach występują 4 rodzaje znaków:

  1. Zwykłe znaki (cyfry lub litery typowego języka).
  2. Znaki sterujące (znaki używane do wpływania na to, jak dokument jest analizowany przez robota lub program), takie jak Line FInish (LF) lub Carriage Return (CR).
  3. Znaki meta (dowolna postać reprezentująca coś innego niż ona sama).

Czy możemy powiedzieć, że znaki BOM są również znakami kontrolnymi, takimi jak LF lub CR?

JohnDoea
źródło
Mówisz „istnieją 4 rodzaje znaków”, a następnie
podajesz

Odpowiedzi:

2

Czy możemy powiedzieć, że znaki BOM są również znakami kontrolnymi, takimi jak LF lub CR?

Nie. Bardziej przypomina podpis:

P: Co to jest LM?

Odp .: Znak kolejności bajtów (BOM) składa się z kodu znakowego U + FEFF na początku strumienia danych, gdzie można go użyć jako sygnatury określającej kolejność bajtów i formę kodowania, głównie z nieoznakowanych plików tekstu jawnego. Zgodnie z niektórymi protokołami wyższego poziomu użycie BOM może być obowiązkowe (lub zabronione) w strumieniu danych Unicode zdefiniowanym w tym protokole.

Źródło FAQ - UTF-8, UTF-16, UTF-32 i BOM


W swoim pytaniu stwierdzasz:

Znaki sterujące (znaki używane do wpływania na to, jak dokument jest analizowany przez robota lub program), takie jak Line FInish (LF) lub Carriage Return (CR).

To powyżej jest nieprawidłowe.

  1. LFto skrót od Line Feed not Line Finish.

  2. Kontrolne znaki nie mają nic wspólnego z analizą dokumentu:

Znak kontrolny lub znak niedrukowalny to punkt kodowy (liczba) w zestawie znaków, który nie reprezentuje zapisanego symbolu. Są one używane jako sygnalizacja wewnątrzpasmowa w celu wywołania efektów innych niż dodanie symbolu do tekstu.

Znak kontroli źródła

DavidPostill
źródło
1

Przez BOM, zakładam, że masz na myśli punkt kodowy Znaka Zamówienia Unicode.

Wymyślasz własne definicje, więc zdefiniuj BOM jako dowolny typ.

Projektanci standardu Unicode mają własne definicje. Zobacz Standard Unicode , wersja 9.0.0, rozdział 3.4 Znaki i kodowanie . Definicja D10a definiuje „typ punktu kodowego” jako „siedem podstawowych klas punktów kodowych w standardzie: grafika, format, kontrola, użytek prywatny, surogat, znak nieoznaczony, zarezerwowany”. Te typy zostały szczegółowo wyjaśnione w rozdziale 23 Obszary specjalne i znaki formatu . Sekcja 23.8 Specjalne definiuje U + FEFF, „znak kolejności bajtów”, jako mający kodowy typ „Specjalny”.

Tak więc projektanci standardu Unicode mają listę 7 typów punktów kodowych, a znak kolejności bajtów jest typu „Specjalny”. Włącz to do swojej własnej definicji, jak chcesz.

Jim DeLaHunt
źródło