我试过了 recode
:
echo '>' | recode ascii..html
>
但它似乎只能转换像 >
这样的字符<
和 "
:
echo 'a' | recode ascii..html
a
我也想转换字母和其他字符。即,上述命令的期望输出是 a
.
有没有什么简单的方法可以在不创建大正则表达式的情况下做到这一点?
最佳答案
您可以使用 printf 在变量前面使用 ' 来获取字符的 ascii 值。这当然会导致 >
而不是 >
。您可以使用下面的代码将 $1 转换为一串 html ascii 代码。
str=$1
for (( i=0; i<${#str}; i++ )); do
c=${str:$i:1}
printf "&#%d;" "'$c" #
done
echo ""
关于html - 如何使用 bash 脚本将文本转换为 html 字符代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21541094/