我目前正在使用它来编码URL(UTF-8):
ENCODED=$(echo -n "válue to éncôde" | \
perl -pe's/([^-_.~A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg');
echo $ENCODED
如何编码成ISO-8859呢?
答案 0 :(得分:1)
[iso-8859不是编码;这是一整套编码。我假设你的意思是iso-8859-1。]
因此,您将UTF-8字节传递给Perl,并且您希望将它们转换为iso-8859-1。 Encode是该模块的首选模块。
echo -n "válue to éncôde" | \
perl -MEncode=from_to -MURI::Escape -pe'
from_to($_, "UTF-8", "iso-8859-1");
$_ = uri_escape($_);
'
还有iconv
echo -n "válue to éncôde" | \
iconv -f UTF-8 -t iso-8859-1 | \
perl -MURI::Escape -pe'$_ = uri_escape($_)'