【发布时间】:2015-08-02 16:10:14
【问题描述】:
我的设置:perl-5.20.2,UTF-8 环境。
考虑以下两个 bash 示例。第一个工作正常,第二个不行。
echo -n 'привет мир' | perl -MEncode -le '$a=decode("utf8",<>); $x=decode("utf8","мир"); print encode("utf8",sprintf("% 11s",$a)) if $a=~/$x/'|grep -q ' привет мир' && echo OK
for (( i=0; $i < 512; i=$((i+1)) )); do echo -n 'привет мир' | perl -C$i -le '$a=<>; print sprintf("% 11s",$a) if $a=~/мир/' | grep -q ' привет мир' && echo $i; done
为什么情况2)中没有-C标志号,这使得示例至少可以工作一次?
【问题讨论】:
-
你可以使用
-Mutf8
标签: perl utf-8 utf8-decode