Mi az a BOM?
A bájt-sorrendű jel (BOM), vagy bájt-sorrendű jel egy speciális jelölés, amelyet egy Unicode fájlba helyeznek be, amelyet UTF-8, UTF16 vagy UTF-32 kódolással kódolnak, hogy azonosítsák egy Unicode fájl kódolási típusát. Az UTF-8 esetében nem szükséges BOM, mivel azt használják egy többbájtos kódolt fájl kódolási típusának és bájtsorrendjének (big-endian vagy little-endian) megjelölésére. Az UTF-8-ban az egyes karakterekhez kódolt bitek számát az első bájt fejezi ki, és nincs különbség a big-endian és a little-endian között. Az UTF-8 nem igényel BOM-ot, bár a Unicode szabvány lehetővé teszi a BOM-ok használatát az UTF-8-ban. Ezért az UTF-8 BOM nélkül a szabványos forma, és a Microsoft főként szokása, hogy egy BOM-ot egy UTF-8 fájlba helyez (egyébként: a Microsoft szokása az UTF-16-ot BOM-val "Unicode"-nak nevezni anélkül, hogy részletekbe menne). A BOM-okat az UTF-16 és UTF-32 jelzésére készítik elő, hogy a bájtsorrendet jelöljenek. A Microsoft a BOM-ot használja az UTF-8-ban, mert világos különbséget tesz az UTF-8 és az ASCII kódolás között, különben CSV fájl megnyitása Excelben zavaros lehet. De egy ilyen fájl problémákat okozhat más operációs rendszerekben is, nem a Windowson. Az "UTF-8" és a "UTF-8 BOM-val" közötti különbség az, hogy van-e BOM vagy sem. Vagyis az, hogy van-e U+FEFF a fájl elején. Az UTF-8 webkód nem használhat BOM-okat, különben gyakoriak a hibák. Amikor CSV fájlt bocsátunk ki http válaszból, az alapértelmezett módon nem szerepel, ha utf8-ra van állítva. BOM, de a Windows Excel BOM-ot használ az UTF8 kódolás megerősítésére, és mindannyian BOM-ot kell írnia a fájl elejéig.
Amikor először fejlesztesz egy Java kódgenerátort, közvetlenül a fájlt fogod használniÍrj egy UTF-8 fájlba, amely tartalmazza a BOM címkétEz csomagolási hibákhoz vezethet, az alábbiak szerint:
Illegális szereplők: '\ufeff'
Hogyan használhatom a .NET / C# fájlokat, hogy megállapítsam, tartalmaz-e egy fájl BOM címkéket? , a kód a következő:
Kollégák, csatolvaAz UTF-8 BOM formátumot átalakítja UTF-8 (BOM címkék nélkül) formátumra, a teljes kód a következő:
(Vége)
|