Ce este BOM?
Marca de ordinea octeților (BOM), sau marca de ordinea octeților, este o marcă specială inserată într-un fișier Unicode codificat cu UTF-8, UTF16 sau UTF-32 pentru a identifica tipul de codare al unui fișier Unicode. Pentru UTF-8, nu este necesară o BOM, deoarece este folosită pentru a marca tipul de codare și ordinea octeților (big-endian sau little-endian) a unui fișier codificat pe mai mulți octeți. În UTF-8, numărul de biți codificați pentru fiecare caracter este exprimat prin primul octet, iar între big-endian și little-endian nu există distincție între big-endian și little-endian. UTF-8 nu necesită o listă de bază, deși standardul Unicode permite utilizarea unor liste de referințe în UTF-8. Prin urmare, UTF-8 fără BOM este forma standard, iar obiceiul Microsoft este în principal să plaseze un BOM într-un fișier UTF-8 (apropo: este și obiceiul Microsoft să numească UTF-16 cu un BOM "Unicode" fără a intra în detalii). Cadrele de bază sunt pregătite pentru UTF-16 și UTF-32 pentru a marca ordinea octeților. Microsoft folosește BOM în UTF-8 deoarece permite o distincție clară între codarea UTF-8 și ASCII, altfel deschiderea unui fișier CSV în Excel poate fi distorsionată. Dar un astfel de fișier poate cauza probleme în alte sisteme de operare decât Windows. Diferența dintre "UTF-8" și "UTF-8 cu BOM" constă în existența unui BOM sau nu. Adică, dacă există un U+FEFF la începutul fișierului. Codul web UTF-8 nu ar trebui să folosească bazele de bază, altfel erorile sunt frecvente. Când se emite un fișier CSV din răspunsul http, acesta nu este inclus implicit când este setat pe utf8 BOM, dar Windows Excel folosește BOM pentru a confirma codarea UTF8, iar toate trebuie să scrie BOM la începutul fișierului.
Când dezvolți pentru prima dată un generator de cod Java, vei pune fișierul directScrie într-un fișier UTF-8 care conține eticheta BOMAcest lucru va duce la erori de ambalare, după cum urmează:
Personaje ilegale: '\ufeff'
Cum folosesc .NET / C# pentru a determina dacă un fișier conține etichete BOM? , codul este următorul:
Colegi, atașațiConvertește formatul UTF-8 BOM în formatul UTF-8 (fără etichete BOM), codul complet este următorul:
(Sfârșit)
|