Existe-t-il un outil (en ligne de commande, très bien) capable de convertir les caractères accentués en entités HTML dans Ubuntu? De préférence récursivement et sans convertir également les balises html/php.
e.g.
from: é
to: é
or: é
Recode peut convertir en entités HTML:
$ echo "é" | recode ..html
é
Quelques transformations HTML légèrement différentes sont disponibles dans recode; voir info recode HTML
.
Si vous voulez recoder un ou plusieurs fichiers, vous pouvez utiliser
$ recode ..html one_file another_file and so on
Pour une action récursive, utilisez la commande find
, par exemple.
$ find your_directory -type f -name "*.html"
La commande de recherche ci-dessus ne montrera que les fichiers. Assurez-vous que vous n'avez trouvé que les bons fichiers, pas les fichiers binaires ni les fichiers des répertoires indésirables. C'est également une bonne idée de faire une sauvegarde ou d'utiliser une copie de vos fichiers, pas des fichiers réels. Si vous avez trouvé la bonne commande de recherche, ajoutez -exec your_command {} +
, où votre_commande est la recode ..html
d'en haut et le {}
désigne le ou les fichiers donnés par find à recoder:
$ find your_directory -type f -name "*.html" -exec recode ..html {} +
Mais attendez un instant, il y a une grosse mise en garde: recode ..html
suppose que vos fichiers d'entrée se trouvent dans le même jeu de caractères (codage) que celui que vous utilisez sur la ligne de commande. Si tous vos fichiers utilisent le format "moderne" UTF-8, cela fonctionnera correctement, car Ubuntu utilisait le format UTF-8 standard. Mais si certains de vos fichiers utilisent l'ancienne ISO-8859-1 ou d'autres jeux de caractères, ce sera beaucoup plus compliqué.
Inspiré par la suggestion de Denwerko sur l'utilisation de sed, j'ai écrit un script bash open source bien documenté et facilement lisible qui convertit les lettres accentuées en entités HTML. Vous pouvez le trouver ici: http://www.lugato.co.uk/silvio_dwl.html Profitez-en! ;)
probablement sed. Tutoriel ici
http://www.grymoire.com/Unix/Sed.html#uh-6
pour votre exemple, peut-être la commande
sed s/"é"/"\é"/g < oldfile > newfile
(réparez-moi si je me trompe, je n'ai pas vu sed pendant un moment)
gedit probablement installé par défaut, ctrl + H
Découvrez la source de http://www.text-symbols.com/tools/escape-chars/
Prenez ce javascript, exécutez-le dans un environnement js capable de faire un IO (node.js) et utilisez simplement find -exec
pour trouver tous les fichiers à convertir et exécuter votre convertisseur basé sur les nœuds fichiers nécessaires.