技術的には UCS2-LE (BOM なし) ですが、UTF-16 の .NET で問題なくロードできるフラット ファイルがあります。これは、UCS-2 が UTF-16 よりも古い標準であるためだと理解しています。優先します。
ただし、私が興味を持っているのは、ファイルが実際に UCS-2 であるかどうかを判断できることです。私はこれが私が推測していることを意味することを知っています. 私は chardet の .NET ポート、IMultilang2 相互運用機能、および UTF-16 を介した UCS-2 の決定を引き出すために Novell によるいくつかのオープン ソースを試しましたが、成功しませんでした。UCS-2LE w/o BOM と無効/長すぎる UTF-8 の違いを判断できる手法は見つかりませんでした。
それらをバイトごとに検査し、それが可変長か固定長かを判断しようとする必要がありますか? 欠落しているコードポイントを探しますか? 問題は、これらのテキスト ファイルには特別なコードポイントがなく、標準的な西欧文字セットしかないことです。しかし、TextPad はそれらを BOM なしの UCS2-LE として保存し、UTF-16 に完全に準拠することを望むソフトウェアでの下流のファイル操作を複雑にします (ファイルを強制的にロードするだけでは機能しますが、ソフトウェアの要件では機能しません)。 )。