将重音字符转换为 HTML 实体的工具?

将重音字符转换为 HTML 实体的工具?

是否有一个工具(命令行也可以)可以将重音字符转换为 Ubuntu 中的 HTML 实体?最好是递归的,并且不转换 html/php 标签。

e.g.
from: é
to: é
or: é

答案1

Recode 可以转换为 HTML 实体:

$ echo "é" | recode ..html
é

recode 中提供了几种略有不同的 HTML 转换;请参阅info recode HTML

如果你想重新编码一个文件或一些文件,你可以使用

$ recode ..html one_file another_file and so on

对于递归操作,请使用find命令,例如

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

上述 find 命令将仅显示文件。请确保您只找到了正确的文件,而不是任何二进制文件或任何不需要的目录中的文件。备份或使用文件副本(而不是真实文件)也是一个好主意。如果您找到了正确的 find 命令,请附加-exec your_command {} +,其中 your_command 是recode ..html上面的 ,并且{}表示 find 给出的要重新编码的文件:

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

但是请稍等一下,有一个很大的警告:recode ..html假设您的输入文件采用与命令行上使用的字符集(编码)相同的字符集。如果您的所有文件都使用“现代”UTF-8,它将正常工作,因为 Ubuntu 使用标准的 UTF-8。但是,如果您的某些文件使用较旧的 ISO-8859-1 或其他字符集,情况就会复杂得多。

答案2

可能是 sed。教程在这里

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

对于你的例子,也许是命令

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

(如果我错了请纠正我,有一段时间没见过 sed 了)

图形用户界面

可能是默认安装的 gedit,ctrl+H

答案3

查看来源http://www.text-symbols.com/tools/escape-chars/

获取该 javascript,在可以执行某些 IO(node.js)的 js 环境中执行它,然后使用它find -exec来查找所有要转换的文件并在所有必要的文件上执行基于节点的转换器。

答案4

在某些情况下,您想要为重音字符 (à ,è, ì, ò, ù 等) 生成实体,但又想保留 HTML 代码(因此不要省略“<”和“>”,并避免转义已转义的实体。在这些情况下,您可以使用以下代码:$string = str_replace(array("<", ">"), array("<", ">"), htmlentities($string, ENT_NOQUOTES, 'UTF-8', FALSE)); 此代码与 PHP >= 5.2.3 兼容

来源

相关内容