Recherche de texte dans des fichiers UTF-8
Par Youp3 le samedi 7 mars 2009, 18:39 - Fourre-tout - Lien permanent
Depuis longtemps déjà, l'outil de recherche de Windows me pose un problème pour trouver du texte dans un fichier. En effet, l'outil ne trouve pas du texte existant pourtant dans un fichier php contenu dans un dossier sur lequel la recherche est effectuée. J'utilisais jusqu'alors un outil de recherche très bien conçu, nommé Agent Ransack, pour palier cette carence de l'outil Microsoft. Sauf que maintenant que je travaille sur la traduction d'IP.Board 3.0 avec des fichiers encodés en UTF-8, Agent Rasack ne trouve plus les textes avec des accents. Il faut dire que ce logiciel n'a pas été mis à jour depuis 2003 et à l'époque l'UTF-8 n'était pas encore trop utilisé.
Je me suis donc mis en quête d'un outil de recherche supportant UTF-8. Durant mes recherches, j'ai trouvé pourquoi l'outil de recherche de Windows ne trouvait pas ce que je lui demandais. Ce dernier est en fait bridé et il ne recherche du texte que dans certains types de fichier, dont ceux avec l'extension php ne font pas partie. Pour ceux que cela intéresse, l'explication se trouve sur cette FAQ ainsi que ce qu'il faut faire pour ajouter les extensions dont vous avez besoin. Sauf que manque de pot, L'outil de recherche intégré à Windows XP n'est pas compatible UTF-8 lui non plus. 
J'ai finalement trouvé mon bonheur dans le logiciel que j'utilise le plus quand je travaille sur les traductions ou les mods : Notepad++. Dans ce dernier, il suffit d'aller dans le menu Recherche et de choisir Rechercher dans les répertoires (ou d'utiliser directement le raccourci Ctrl+Shift+F). Le résultat est donné dans un cadre qui apparait en bas de la fenêtre en indiquant pour chaque fichier dans lequel la chaîne a été trouvée, le numéro des lignes de chaque occurrence trouvée. Un double-clic sur une occurrence ouvre directement le fichier à ladite ligne, ce qui est super pratique.
Voilà pour la petite histoire d'aujourd'hui. J'espère que cela pourra servir à vous qui me lisez.