ダウンロード用のプレーン テキスト ファイルを提供する必要があります。テキスト ファイルは UTF-8 でエンコードする必要があり、BOM が存在する必要があります。PHP ファイルを BOM なしの UTF-8 として保存し、次のヘッダーを送信します。
header('HTTP/1.1 200 OK');
header('Content-Type: text/plain; charset=utf-8');
header('Content-Disposition: attachment; filename="test.txt"');
ヘッダーの送信を妨げるため、BOM なしでスクリプトを保存します。そこで、次の方法で BOM を手動で入れてみました。
echo chr(239).chr(187).chr(191);
それから私は私のテキストを出しました。マニュアル BOM がなければ、Notepad++ のようなエディタはファイルが ANSI エンコードされていることを認識します。想定されるマニュアル BOM を使用すると、UTF-8 として認識されますが、次の文字が含まれます。

開始時。したがって、ヒューリスティックによってUTF-8であることが検出され、手動のBOMが間違っていると思います。
どうすれば正しくできますか?
編集:要求どおりの HEX コンテンツ。テキスト「SOME TEXT」を作成しただけで、次のようになります。
C3 AF C2 BB C2 BF 53 4F 4D 45 20 54 45 58 54
「SOME TEXT」を BOM 付きの UTF-8 として保存すると、次のようになります。
EF BB BF 53 4F 4D 45 20 54 45 58 54