+ -- UTF-16 (little-endian)
+
+ elsif Str'Length >= 2
+ and then Str (Str'First) = Character'Val (16#FF#)
+ and then Str (Str'First + 1) = Character'Val (16#FE#)
+ then
+ Len := 2;
+ BOM := UTF16_LE;
...
+ -- UTF-32 (little-endian)
+
+ elsif Str'Length >= 4
+ and then Str (Str'First) = Character'Val (16#FF#)
+ and then Str (Str'First + 1) = Character'Val (16#FE#)
+ and then Str (Str'First + 2) = Character'Val (16#00#)
+ and then Str (Str'First + 3) = Character'Val (16#00#)
+ then
+ Len := 4;
+ BOM := UTF32_LE;