Advertisement
Advertisement
β‘ Community Insights
Discussion Sentiment
33% Positive
Analyzed from 330 words in the discussion.
Trending Topics
#utf#bom#file#windows#text#unicode#reflect#json#why#boms
Discussion Sentiment
Analyzed from 330 words in the discussion.
Trending Topics
Discussion (7 Comments)Read Original on HackerNews
The UTF-8 BOM is especially bizarre because UTF-8 is completely endian-agnostic (so this "UTF-8 Byte Order Mark" is at most an indicator that this file is UTF-8 encoded, but guess what? Outside the Windows bubble, all text files are UTF-8 anyway).
Personally I'd like a world where Unicode gave up all the compromises that come with supporting UTF-16. But presumably burning all your early adopters is not a winning strategy.
Isnt BOM allowed to appear anywhere in the file, because of file concatenation?
json.loads has a similar tell: a leading BOM gives you "Expecting value: line 1 column 1 (char 0)", which reads like malformed JSON when the JSON is fine.
Same fix, utf-8-sig at the open, and I think the lesson generalises past subtitles: deal with encoding once at the I/O boundary so nothing downstream ever needs to know a BOM existed. Mid-file BOMs like yours are what it looks like when that leaks.