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
MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril SHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KITSHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KIT par Matthew
http://www.microsoft.com/download/en/details.aspx?id=28768&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+MicrosoftDownloadCenter+(Microsoft+Download+Center) ...
Cliquez pour lire la suite de l'article par Matthew
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|