{"schema":"cpc-unicode-answer-v1","question":"Why can a byte order mark look blank?","answer":"U+FEFF is ZERO WIDTH NO-BREAK SPACE. At the start of a file it is also used as a byte order mark. The character for inhibiting a line break is U+2060. Code points: U+FEFF. A leading U+FEFF can be invisible and can change a hash or a parse. No parser was tested. A non-equivalent fallback is \"⁠\" (Word joiner). Inhibits a line break. It is not a byte order mark. Font coverage, shaping, and application acceptance were not tested, so those results are unknown.","unicodeVersion":"18.0.0","purpose":"general","citation":"Do not invent a platform-support claim from this data.","page":"/answers/why-a-byte-order-mark-can-look-blank/","markdown":"/answers/why-a-byte-order-mark-can-look-blank.md","sample":"﻿","codepoints":[{"codepoint":"U+FEFF","name":"ZERO WIDTH NO-BREAK SPACE","displayLabel":"[BOM/ZWNBSP]","warnings":["space-or-formatting","byte-order-mark"],"explanations":[{"id":"byte-order-mark","title":"Byte order mark and word joiner","behavior":"U+FEFF is ZERO WIDTH NO-BREAK SPACE. At the start of a file it is also used as a byte order mark. The character for inhibiting a line break is U+2060.","limitation":"A leading U+FEFF can be invisible and can change a hash or a parse. No parser was tested.","fix":"Remove a leading U+FEFF when the file is not using it as a byte order mark. Use U+2060 when the intent is to inhibit a line break.","source":"https://www.unicode.org/reports/tr44/","alternatives":[{"value":"⁠","reason":"Word joiner","tradeoff":"Inhibits a line break. It is not a byte order mark."}],"evidenceTier":"standards-informed-editorial","evidence":{"behavior":"standards-informed","compatibility":"not-tested","repair":"editorial-guidance"}}]}],"comparison":null,"graphemes":{"status":"available","method":"runtime-intl-segmenter","unicodeDataVersion":"runtime-unknown","count":1,"segments":[{"text":"﻿","utf16Offset":0,"codepoints":["U+FEFF"]}]},"normalizationChanged":{"NFC":false,"NFD":false,"NFKC":false,"NFKD":false},"normalizationUnicodeDataVersion":"runtime-unknown","targetCompatibility":{"status":"unknown","evidenceTier":"not-tested","purpose":"general","explanation":"No OS, font, browser, application, field policy or rendering engine was tested. Unicode validity and segmentation do not establish actual display or acceptance."}}