120 votes

Écrire des fichiers texte sans Byte Order Mark (BOM) ?

J'essaie de créer un fichier texte en utilisant VB.Net avec un encodage UTF8, sans BOM. Quelqu'un peut-il m'aider à le faire ?
Je peux écrire un fichier avec l'encodage UTF8 mais, comment supprimer la marque d'ordre des octets ?
Merci d'avance. edit1 : J'ai essayé un code comme celui-ci ;

    Dim utf8 As New UTF8Encoding()
    Dim utf8EmitBOM As New UTF8Encoding(True)
    Dim strW As New StreamWriter("c:\temp\bom\1.html", True, utf8EmitBOM)
    strW.Write(utf8EmitBOM.GetPreamble())
    strW.WriteLine("hi there")
    strW.Close()

        Dim strw2 As New StreamWriter("c:\temp\bom\2.html", True, utf8)
        strw2.Write(utf8.GetPreamble())
        strw2.WriteLine("hi there")
        strw2.Close()

1.html est créé avec un encodage UTF8 uniquement et 2.html est créé avec un encodage ANSI.

Approche simplifiée - http://whatilearnttuday.blogspot.com/2011/10/write-text-files-without-byte-order.html

-1voto

Mwenyeji Points 11
Dim sWriter As IO.StreamWriter = New IO.StreamWriter(shareworklist & "\" & getfilename() & ".txt", False, Encoding.Default)

Il vous donne les résultats que vous souhaitez (je pense).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X