UTF-8 でエンコードされたファイルを読み取るときに FileReader 出力に BOM マーカーが表示されるのはなぜですか?

DDD
リリース: 2024-11-16 08:09:03
オリジナル
790 人が閲覧しました

Why Does the BOM Marker Appear in FileReader Output When Reading UTF-8 Encoded Files?

FileReader 出力に BOM マーカーが含まれる

FileReader を使用して BOM (バイト オーダー マーク) を持つ UTF-8 エンコードされたファイルを読み取る場合)、BOM マーカーが出力文字列に誤って表示される可能性があります。これは、BOM がテキストの UTF-8 エンコード表現の一部として含まれているために発生します。

これが発生する理由を理解するには、BOM が特殊文字または文字列であることを示すことが重要です。テキストファイルのエンコーディング。 UTF-8 の場合、BOM はバイト シーケンス EFBBBF で表されます。

FileReader がファイルを読み取るとき、UTF-8 エンコーディングを使用して文字をデコードします。ただし、BOM は有効な Unicode 文字ではないため、デコード プロセス中にスキップまたは削除されません。代わりに、これは readLine() メソッドによって返される文字列に含まれます。

この問題を回避するには、次の方法を使用できます。

  • デコード前の BOM: substring() メソッドを使用して、readLine() によって返された文字列から最初の 3 文字を削除できます。これにより、出力文字列に含まれる前に BOM が削除されます。
  • BOM 対応デコーダーを使用する: BOM を処理するために特別に設計されたデコーダーを使用できます。このようなデコーダは、テキストをデコードするときに BOM を自動的にスキップまたは無視します。

以上がUTF-8 でエンコードされたファイルを読み取るときに FileReader 出力に BOM マーカーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート