>>1 Windowsが失敗してるだけです。
UTF-8とUTF-16は同列に並んでるだけ
規格化してるので問題ではない。
小型PCとデカイ筐体のゲーミングPCの違いがUTF-8とUTF-16の違いだよ。
UTF-8の方がバイト数が少ないだけで、逃げ道としてUTF-16があるのは大事。
問題なのがBOM付き、これはファイルの先頭にヘッダーつけて判断させる
仕組みがBOM付きの意味であり。
マイクロソフトには文字コードで判断する術がないので頭に判別マークつけて判断したのがマイクロソフトやり方。
それをするとバッチが動かない。Windowsは作りが雑すぎて使いにくいわけ。
マイクロソフトにまともな自動判定で運用できるすべがないのが
マイクロソフト汚染が始まる原因。能力のない会社がのさばってると悪くなるだけ、
低級なマイクロソフト的だと
言語コード毎に拡張子を変えて運用すればいい。
拡張子の使い方は、ファイルの種類を定義するものです。
拡張子は起動アプリをしてするものではない。
Macだとクリーター、同じファイルでも起動先を別々に設定できるけど
Windowsにはそういう機能がないので、いい加減に拡張子を設定する。
4文字の拡張子にして
xxxx.UTF8 にするようにすれば
マイクロソフトだとこのやり方が一番でしょう。