A ZERO WIDTH NO-BREAK SPACE shares the same codepoint with the BYTE ORDER MARK (U+00FEFF).
If the BOM character appears in the middle of a data stream, Unicode says it should be interpreted as a "zero-width non-breaking space" (inhibits line-breaking between word-glyphs). In Unicode 3.2, this usage is deprecated in favor of the "Word Joiner" character, U+2060.1 This allows U+FEFF to be only used as a BOM.
A BOM is required for UTF-16 (because of endianness UTF-16be vs UTF-16le). In UTF-8 encoded files, a BOM is optional and advised to omit.
"The Unicode Standard 5.0, Chapter 2:General Structure" (PDF). p. 36. Retrieved 2008-11-30. Use of a BOM is neither required nor recommended for UTF-8, but may be encountered in contexts where UTF-8 data is converted from other encoding forms that use a BOM or where the BOM is used as a UTF-8 signature
Read this very nice article. It is about perl6, but there is no code in there whatsoever, so it have easily been written in the earlier days of perl5 but with new insights.
In reply to Re^5: Need Help Porting XS Modules to Windows
by Tux
in thread Need Help Porting XS Modules to Windows
by wbirkett
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |