最初は ASCII エンコーディングを使用してテキスト データを読み取り、バイナリ データの読み取りをシミュレートしましたが、文字エンコーディングが 127 より大きい場合、128 の余りに相当する 128 未満の値しか取得できないことがわかりました。したがって、ASCII エンコードは不可能です。
検索を続けたところ、CodeProejct.com で「JScript を使用したバイナリ ファイルの読み取りと書き込み」という記事を見つけました。この記事には、まさに必要なものが含まれていました。
実際、言うのは簡単です。エンコードを変更して 437 を使用するだけです。これは、IBM によって拡張された ASCII エンコードであり、文字セット内の文字を拡張するためにも使用されます。この文字セットを使用して読み取られた文字データは、元のバイナリ データと同等になります。
障害を解決したら、ADODB.Stream オブジェクトを使用してファイルの最初の 2 バイトを読み取り、これらの 2 バイトに基づいてファイルのエンコーディングの識別を開始します。ファイルのエンコーディングが What's up であるかどうかを確認します。
UTF-8 ファイルに BOM がある場合、最初の 2 バイトは 0xEF と 0xBB です。たとえば、Unicode ファイルの最初の 2 バイトは 0xFF と 0xFE です。これらはファイルを判断するための基準になります。エンコーディング。
ADODB.Stream が文字を読み取る場合、1 対 1 の対応はありません。つまり、バイナリ データが 0xEF の場合、読み取った文字は通過後に 0xFE にはなりません。 charCodeAt は別の値です。この対応表は上記の記事にあります。
プログラム コード: