Accueil > > > SUPPRIMER LES TAG BOM DANS FICHIER UTF-8
SUPPRIMER LES TAG BOM DANS FICHIER UTF-8
Information sur la source
Description
Ce programme vous permettra du supprimer les tags au début des fichiers UTF-8 BOM. J’ai rajouté la possibilité de mettre des extensions pour le scan. Voici l'url pour les fainéants, le programme y est déjà compilé : http://hidalgoemmanuel.info/csharp-net/supprimer -les-tag-bom-dans-fichier-utf-8.html
Source
- /*
- * Created by SharpDevelop.
- * User: hidalgo emmanuel
- * Date: 24/04/2008
- * Time: 12:20
- *
- * To change this template use Tools | Options | Coding | Edit Standard Headers.
- */
-
- using System;
- using System.IO;
- using System.Collections;
-
- namespace delete_tag_utf8_bom_win
- {
- /// <summary>
- /// Description of ScanUtf8Bom.
- /// </summary>
- public class ScanUtf8Bom
- {
- public string sLogFichiers = "";
- private string[] _oExtension;
-
- public ScanUtf8Bom( string[] oExtensions ){
- this._oExtension = oExtensions;
- }
-
- public void ScanFolder( DirectoryInfo oDirectory ){
- foreach( FileInfo oFileInfo in oDirectory.GetFiles() ){
- string sExtension = oFileInfo.Extension;
- if( sExtension.Length > 1 && sExtension.Substring( 0, 1 ) == "." )
- sExtension = sExtension.Substring( 1 );
- string sOkExtension = Array.Find( this._oExtension, delegate ( string sExt ) { return sExt == sExtension; } );
- if( sOkExtension != null && this.FileIsBOM( oFileInfo.FullName ) )
- this.DeleteTagBom( oFileInfo.FullName );
- }
- foreach( DirectoryInfo oDirectoryChild in oDirectory.GetDirectories() )
- if( oDirectoryChild.Name != ".svn" )
- this.ScanFolder( oDirectoryChild );
- }
-
- public bool FileIsBOM( string sFile ){
- byte[] oData = new Byte[ 3 ];
- byte[] oBom = new Byte[ 3 ];
- oBom[ 0 ] = 239;// -> i
- oBom[ 1 ] = 187;// -> »
- oBom[ 2 ] = 191;// -> ¿
-
- FileStream oFileStream = new FileStream( sFile, FileMode.Open );
- oFileStream.Read( oData, 0, 3 );
-
- for( int i = 0; i < oData.Length; i++ )
- if( oData[ i ] != oBom[ i ] )
- return false;
-
- oFileStream.Close();
-
- return true;
- }
-
- public void DeleteTagBom( string sFile ){
- this.sLogFichiers += "delete tag in : " + sFile + "\r\n";
-
- FileInfo oFileInfo = new FileInfo( sFile );
- byte[] oData = new byte[ oFileInfo.Length ];
-
- FileStream oFileStream = new FileStream( sFile, FileMode.Open );
- oFileStream.Read( oData, 0, (int)oFileInfo.Length );
- oFileStream.Close();
-
- File.Delete( sFile );
-
- oFileStream = new FileStream( sFile, FileMode.Create );
- oFileStream.Write( oData, 3, oData.Length - 3 );
- oFileStream.Close();
- }
- }
- }
/*
* Created by SharpDevelop.
* User: hidalgo emmanuel
* Date: 24/04/2008
* Time: 12:20
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.IO;
using System.Collections;
namespace delete_tag_utf8_bom_win
{
/// <summary>
/// Description of ScanUtf8Bom.
/// </summary>
public class ScanUtf8Bom
{
public string sLogFichiers = "";
private string[] _oExtension;
public ScanUtf8Bom( string[] oExtensions ){
this._oExtension = oExtensions;
}
public void ScanFolder( DirectoryInfo oDirectory ){
foreach( FileInfo oFileInfo in oDirectory.GetFiles() ){
string sExtension = oFileInfo.Extension;
if( sExtension.Length > 1 && sExtension.Substring( 0, 1 ) == "." )
sExtension = sExtension.Substring( 1 );
string sOkExtension = Array.Find( this._oExtension, delegate ( string sExt ) { return sExt == sExtension; } );
if( sOkExtension != null && this.FileIsBOM( oFileInfo.FullName ) )
this.DeleteTagBom( oFileInfo.FullName );
}
foreach( DirectoryInfo oDirectoryChild in oDirectory.GetDirectories() )
if( oDirectoryChild.Name != ".svn" )
this.ScanFolder( oDirectoryChild );
}
public bool FileIsBOM( string sFile ){
byte[] oData = new Byte[ 3 ];
byte[] oBom = new Byte[ 3 ];
oBom[ 0 ] = 239;// -> i
oBom[ 1 ] = 187;// -> »
oBom[ 2 ] = 191;// -> ¿
FileStream oFileStream = new FileStream( sFile, FileMode.Open );
oFileStream.Read( oData, 0, 3 );
for( int i = 0; i < oData.Length; i++ )
if( oData[ i ] != oBom[ i ] )
return false;
oFileStream.Close();
return true;
}
public void DeleteTagBom( string sFile ){
this.sLogFichiers += "delete tag in : " + sFile + "\r\n";
FileInfo oFileInfo = new FileInfo( sFile );
byte[] oData = new byte[ oFileInfo.Length ];
FileStream oFileStream = new FileStream( sFile, FileMode.Open );
oFileStream.Read( oData, 0, (int)oFileInfo.Length );
oFileStream.Close();
File.Delete( sFile );
oFileStream = new FileStream( sFile, FileMode.Create );
oFileStream.Write( oData, 3, oData.Length - 3 );
oFileStream.Close();
}
}
}
Conclusion
Ce programme vous permet de supprimer les tags BOM (souvent invisible) de l'ensemble des fichiers d'un répertoire.
Historique
- 24 avril 2008 13:35:18 :
- Il y a maintenant une classe à part.
- 24 avril 2008 21:47:51 :
- Je fourni l'url ou les personnes pourront récupéré le programme déjà compilé, ligne de commande et window.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Problème de lecture de fichier en UTF8 [ par P0lO ]
Bonjour à tous! Je code en C# pour le Compact FrameworkMon problème est le suivant pour un de mes programmes je doit créer et utiliser des fichiers d'
Problème encoding utf8... [ par PeTeRsLaStAr ]
Salutations, amis du C# :) (ou la... faut que j'arrête WOW, ça me réussit pas...)Je souhaiterais écrire un fichier (suite à un flux de caractères) de
Comment ouvrir un fichier qui est stocké dans le répertoir bin [ par hred1 ]
Bonjour, Je repose ma question, donc l'idée c'est pouvoir ouvrir un document word stocké dans le fichier bin plus précisement je souhaite stocker le d
dll dans le general assembly cache [ par wally88 ]
Bonjour, j'ai fais une application avec visual c# express 2005 + firebird.Je souhaite la publier, cela fonctionne. Mais quand j installe l'application
Ressources en C# fichier resx [ par dgelekid ]
Bonjour à tous,Voilà je cherche à ouvrir un fichier (.dot) encapsuler dans mon projet C#.Mon fichier encapsulé est au format Byte[] et je n'arrive pas
PB: Lecture fichier xml avec un dataset [ par Manu94600 ]
Salut à tous, Je travail en ce moment sur un projet de création de fichiers pivots.Donc j'ai une série de fichiers xml avec leur xsd, qu'on reçoit.J
Mise à jour d'un label [ par dreamerT ]
Bonjour !J'ai un petit problème avec le code c# qui va suivre.Il s'agit d'une winform simple contenant un label (label1), une progressbar (progressbar
Ajouter automatiquement numéro de version au fichier msi généré [ par Flashy Warrior ]
Bonjour,J'ai fini de développer la première version de mon application, et j'ai créé un projet pour générer un package d'installation (fichier Setup.e
Lire/recuperer MPEG header [ par boutnell ]
Salut tout le monde.Je souhaiterai lire le header des fichier mpeg pour pouvoir par exemple recuperer des informations sur le fichier.Voici un lien tr
ouverture/fermeture fichier LOG [ par babe59 ]
Bonjour,Dans mon appli, je fais une classe pour écrire mes messages d'erreur dans un fichier texte. L'idée est que je version ces fichiers de log afin
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|