const file = e.target.files[0] const arrayBuffer = await file.arrayBuffer() const binary = new Uint8Array(arrayBuffer) const decoder = new TextDecoder("sjis", { fatal: true }) const s = decoder.decode(binary) // binaryはUint8Array
fatalにtrueをしていても必ず例外が起きるわけではなく、utf16のファイルを添付すると普通に読み込めてしまうので、そこまで信用して使えるものではなさそう
使用可能なエンコーディングはこちら