Ferramenta para converter caracteres acentuados em entidades HTML?

4

Existe uma ferramenta (linha de comando é boa) que pode converter caracteres acentuados para entidades HTML no Ubuntu? De preferência recursivamente e sem converter também tags html / php.

e.g.
from: é
to: é
or: é
    
por bafromca 04.05.2011 / 17:24

4 respostas

4

O recode pode converter em entidades HTML:

$ echo "é" | recode ..html
é

Existem algumas transformações HTML ligeiramente diferentes disponíveis no recode; veja info recode HTML .

Se você deseja recodificar um arquivo ou alguns arquivos, pode usar

$ recode ..html one_file another_file and so on

Para ação recursiva, use o comando find , por exemplo,

$ find your_directory -type f -name "*.html"

O comando find acima mostrará apenas os arquivos. Por favor, certifique-se de que você encontrou apenas os arquivos corretos, não quaisquer binários e nem arquivos em diretórios indesejados. Também é uma boa idéia fazer um backup ou usar uma cópia de seus arquivos, não os arquivos reais. Se você encontrou o comando find correto, anexe -exec your_command {} + , onde your_command é o recode ..html de acima e {} indica o (s) arquivo (s) que são dados por find para recodificar:

$ find your_directory -type f -name "*.html" -exec recode ..html {} +

Mas espere um momento, há uma grande ressalva: recode ..html assume que seus arquivos de entrada estão no mesmo conjunto de caracteres (codificação) que você está usando na linha de comando. Se todos os seus arquivos usam o UTF-8 "moderno", ele funcionará bem, porque o Ubuntu usou o UTF-8 do padrão. Mas se alguns de seus arquivos usarem o ISO-8859-1 mais antigo ou outros charsets, será muito mais complicado.

    
por elmicha 04.05.2011 / 20:49
0

provavelmente sed. Tutorial aqui

link

para o seu exemplo, talvez comando

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

(conserte-me se estiver errado, não vi sed por um tempo)

GUI

provavelmente o padrão instalado gedit, ctrl + H

    
por Denwerko 04.05.2011 / 17:29
0

Confira a origem do link

Tome esse javascript, execute-o em um ambiente js que possa fazer algum IO (node.js) e use apenas find -exec para localizar todos os arquivos para converter e executar seu conversor baseado em nó em todos os arquivos necessários.

    
por Dmitriy Likhten 04.05.2011 / 17:48
0

Inspirado pela sugestão de Denwerko sobre o uso de sed, eu escrevi um script bash de código aberto bem documentado e de fácil leitura que converte letras acentuadas em entidades HTML. Você pode encontrá-lo aqui: link Aproveite! ;)

    
por silvio 01.11.2016 / 19:10