OCaml HTML5 parser/serialiser based on Python's JustHTML
1(* BOM (Byte Order Mark) sniffing *) 2 3let sniff data = 4 let len = Bytes.length data in 5 if len >= 3 && 6 Bytes.get data 0 = '\xEF' && 7 Bytes.get data 1 = '\xBB' && 8 Bytes.get data 2 = '\xBF' then 9 Some (Encoding_types.Utf8, 3) 10 else if len >= 2 && 11 Bytes.get data 0 = '\xFF' && 12 Bytes.get data 1 = '\xFE' then 13 Some (Encoding_types.Utf16le, 2) 14 else if len >= 2 && 15 Bytes.get data 0 = '\xFE' && 16 Bytes.get data 1 = '\xFF' then 17 Some (Encoding_types.Utf16be, 2) 18 else 19 None