Byte Order Mark

Da Wikipedia, l'enciclopedia libera.
Unicode
Codifiche
UCS
Mappatura
Testo bidirezionale
BOM
Unificazione Han
Unicode eHTML

Il Byte Order Mark (BOM) è una piccola sequenza di byte che viene posizionata all'inizio di un flusso di dati di puro testo (tipicamente un file) per indicarne il tipo di codifica Unicode.

La sequenza esadecimale è FE FF, a sua volta codificata come i dati stessi, ottenendo esattamente i seguenti byte:

Codifica BOM
UTF-32, big-endian 00 00 FE FF
UTF-32, little-endian FF FE 00 00
UTF-16, big-endian FE FF
UTF-16, little-endian FF FE
UTF-8 EF BB BF

Utilizzo del BOM[modifica | modifica sorgente]

Quando sappiamo che un file o altra sequenza di dati è di testo e non binario, il BOM permette di identificare subito se il testo è in formato Unicode e, in caso affermativo, il tipo esatto di codifica. Naturalmente ciò è utile quando non sappiamo a priori la codifica utilizzata; se invece questa è sempre nota, i byte del BOM possono risultare inutili o addirittura dannosi.

A seconda delle applicazioni, l'uso del BOM può essere obbligatorio, opzionale, oppure potrebbe non essere supportato e causare errori. Un semplice programma come il Blocco note di Windows è in grado di riconoscere la codifica dei file di testo aperti in base al BOM, e di mostrarli correttamente, ovviamente nascondendo all'utente i byte iniziali che compongono il BOM stesso.

Un esempio in cui il BOM è sconsigliato è quello dei file PHP nei quali la presenza del BOM comporta un output verso il browser impedendo l'utilizzo di session_start() o l'invio di altri header.

Collegamenti esterni[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica