ホームページ  >  記事  >  Java  >  UTF-8 でエンコードされたファイルの BOM マーカーを処理するにはどうすればよいですか?

UTF-8 でエンコードされたファイルの BOM マーカーを処理するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-19 04:47:02604ブラウズ

How to Handle BOM Markers in UTF-8 Encoded Files?

UTF-8 エンコード ファイルの BOM マーカー

BOM (バイト オーダー マーク) を含む UTF-8 エンコード ファイルを読み取るときに、BOM マーカーが意図せず含まれる場合がある出力文字列に含まれます。これに対処するには、次の手順に従います。

FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String tmp = null;
String content = "";

while ((tmp = br.readLine()) != null) {
    String text;
    if (tmp.startsWith("\uFEFF")) {
        // Skipping the BOM marker
        text = tmp.substring(1);
    } else {
        text = tmp;
    }

    content += text + System.getProperty("line.separator");
}

この更新されたコードでは、

  • String.startsWith("uFEFF") を使用して、現在の行がBOM マーカー。
  • 存在する場合は、String.substring(1) を使用して BOM マーカーを削除します。
  • 存在しない場合は、元の行をそのまま使用します。
  • 次に、変更した行をコンテンツ文字列に追加します。

出力文字列に追加する前に BOM マーカーを削除することで、最終結果に BOM マーカーが表示されないようにすることができます。

以上がUTF-8 でエンコードされたファイルの BOM マーカーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。