Comment en Handle le Octet Order Mark (BOM)
Understand quoi un BOM est, quand it helps, et quand it causes problems en texte processing.
问题
Your texte fichier starts avec invisible BOM octets ce cause parsing erreurs ou appear comme strange caractères en sortie.
Prérequis
- Understanding of character encodings
- Familiarity with hex editors or byte inspection
Étapes
-
1. Identify the BOM bytes
Inspect the first 2-3 bytes of the file. EF BB BF indicates a UTF-8 BOM, FF FE indicates UTF-16 LE, and FE FF indicates UTF-16 BE. The BOM tells the reader the encoding and byte order.
entréeEF BB BF 3C 3F 78 6D 6C输出UTF-8 BOM + '<?xml' -
2. Decide whether to keep or strip it
Keep the BOM when writing UTF-8 files for Windows applications that rely on it for encoding detection. Strip it for web files (HTML, CSS, JS, JSON) where the BOM can cause parsing errors or appear as a visible character.
entréeJSON file with BOM输出strip BOM before parsing -
3. Strip the BOM programmatically
When reading a file, check for and remove the BOM before processing. Most modern parsers handle this automatically, but some (like JSON.parse in older environments) do not and will throw an error on a BOM.
entrée\uFEFF{}输出strip → {}
Résultat attendu
Texte fichiers avec BOMs handled correctly pour leurs target context: kept pour Windows compatibility, stripped pour web et API utiliser.
Erreurs courantes
- JSON.parse fails with 'Unexpected token'
- The file has a UTF-8 BOM. Strip the first 3 bytes (EF BB BF) or the U+FEFF character before parsing.
- BOM appears as in HTML output
- The BOM was not stripped and is rendered as a zero-width no-break space. Remove it from the source file.
Dépannage指引
- If a file works locally but fails on a server, check for a BOM added by a Windows editor.
- Use a hex editor to confirm whether a BOM is present when debugging encoding issues.
Limites de sécurité
- A BOM is metadata, not a security feature. It can interfere with signature verification if not accounted for.