Cos'è la BOM?
Il marchio dell'ordine dei byte (BOM), o marchio dell'ordine dei byte, è un marchio speciale inserito in un file Unicode codificato con UTF-8, UTF16 o UTF-32 per identificare il tipo di codifica di un file Unicode. Per UTF-8, non è necessario un MAP, poiché viene utilizzato per segnare il tipo di codifica e l'ordine dei byte (big-endian o little-endian) di un file codificato a più byte. In UTF-8, il numero di bit codificati per ogni carattere è espresso dal primo byte, e non c'è distinzione tra big-endian e little-endian. UTF-8 non richiede una lista di beni, anche se lo standard Unicode consente l'uso delle liste di qualità in UTF-8. Pertanto, UTF-8 senza BOM è la forma standard, ed è principalmente abitudine di Microsoft inserire una BOM in un file UTF-8 (tra l'altro: è anche abitudine di Microsoft chiamare UTF-16 con una BOM "Unicode" senza entrare nei dettagli). Le liste di materiali sono preparate per UTF-16 e UTF-32 per segnare l'ordine dei byte. Microsoft utilizza BOM in UTF-8 perché permette una chiara distinzione tra la codifica UTF-8 e ASCII; altrimenti aprire un file CSV in Excel potrebbe risultare confuso. Ma un file del genere può causare problemi in sistemi operativi diversi da Windows. La differenza tra "UTF-8" e "UTF-8 con BOM" sta nel fatto che esista o meno una BOM. Cioè, se c'è un U+FEFF all'inizio del file. Il codice web UTF-8 non dovrebbe utilizzare BOM, altrimenti gli errori sono comuni. Quando si invia un file CSV da HTTP Response, non viene incluso di default se impostato su utf8 BOM, ma Windows Excel usa BOM per confermare la codifica UTF8, e tutti devono scrivere BOM all'inizio del file.
Quando sviluppi per la prima volta un generatore di codice Java, inserirai direttamente il fileScrivi in un file UTF-8 che contiene il tag BOMQuesto porterà a errori di imballaggio, come segue:
Personaggi illegali: '\ufeff'
Come posso usare .NET / C# per determinare se un file contiene tag BOM? , il codice è il seguente:
Colleghi, in attaccoConverte il formato BOM UTF-8 nel formato UTF-8 (senza tag BOM), il codice completo è il seguente:
(Fine)
|