Maison >Java >javaDidacticiel >Comment gérer les marqueurs de nomenclature dans les fichiers codés en UTF-8 ?

Comment gérer les marqueurs de nomenclature dans les fichiers codés en UTF-8 ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-19 04:47:02661parcourir

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

Marqueur de nomenclature dans les fichiers codés en UTF-8

Lors de la lecture d'un fichier codé en UTF-8 avec une nomenclature (marque d'ordre d'octet), le marqueur de nomenclature peut être involontairement inclus dans la chaîne de sortie. Pour résoudre ce problème, suivez ces étapes :

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");
}

Dans ce code mis à jour :

  • Nous utilisons String.startsWith("uFEFF") pour vérifier si la ligne actuelle commence par le Marqueur BOM.
  • Si c'est le cas, nous supprimons le marqueur BOM en utilisant String.substring(1).
  • Si ce n'est pas le cas, nous utilisons la ligne d'origine telle quelle.
  • Nous ajoutons ensuite la ligne modifiée à la chaîne de contenu.

En supprimant le marqueur BOM avant de l'ajouter à la chaîne de sortie, nous pouvons l'empêcher d'apparaître dans le résultat final.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn