JSONではUTF8必須かつBOMを付けてはいけないと明確に定められてるんだな
全てがこのように決まれば文字コードで悩むこと無くなるな

ソース
https://www.rfc-editor.org/rfc/rfc8259.html#section-8.1
JSON text exchanged between systems that are not part of a closed ecosystem
MUST be encoded using UTF-8 [RFC3629].
Implementations MUST NOT add a byte order mark (U+FEFF)
to the beginning of a networked-transmitted JSON text.