web-dev-qa-db-fra.com

Outil pour convertir les caractères accentués en entités HTML?

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: é
7
bafromca

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é.

7
elmicha

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! ;)

0
silvio

probablement sed. Tutoriel ici

http://www.grymoire.com/Unix/Sed.html#uh-6

pour votre exemple, peut-être la commande

sed s/"é"/"\&#233"/g < oldfile > newfile

(réparez-moi si je me trompe, je n'ai pas vu sed pendant un moment)

Interface graphique

gedit probablement installé par défaut, ctrl + H

0
Denwerko

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.

0
Dmitriy Likhten