+/**
+ Constants representing various BOM types.
+
+ BOM is an abbreviation for "Byte Order Mark", a special Unicode character
+ which may be inserted into the beginning of a text stream to indicate its
+ encoding.
+
+ @since 2.9.3
+ */
+enum wxBOM
+{
+ /**
+ Unknown BOM.
+
+ This is returned if BOM presence couldn't be determined and normally
+ happens because not enough bytes of input have been analysed.
+ */
+ wxBOM_Unknown = -1,
+
+ /**
+ No BOM.
+
+ The stream doesn't contain BOM character at all.
+ */
+ wxBOM_None,
+
+ /**
+ UTF-32 big endian BOM.
+
+ The stream is encoded in big endian variant of UTF-32.
+ */
+ wxBOM_UTF32BE,
+
+ /**
+ UTF-32 little endian BOM.
+
+ The stream is encoded in little endian variant of UTF-32.
+ */
+ wxBOM_UTF32LE,
+
+ /**
+ UTF-16 big endian BOM.
+
+ The stream is encoded in big endian variant of UTF-16.
+ */
+ wxBOM_UTF16BE,
+
+ /**
+ UTF-16 little endian BOM.
+
+ The stream is encoded in little endian variant of UTF-16.
+ */
+ wxBOM_UTF16LE,
+
+ /**
+ UTF-8 BOM.
+
+ The stream is encoded in UTF-8.
+
+ Notice that contrary to a popular belief, it's perfectly possible and,
+ n fact, common under Microsoft Windows systems, to have a BOM in an
+ UTF-8 stream: while it's not used to indicate the endianness of UTF-8
+ stream (as it's byte-oriented), the BOM can still be useful just as an
+ unambiguous indicator of UTF-8 being used.
+ */
+ wxBOM_UTF8
+};
+