perl -pe 's/A/ā/' <<< "avatAr"
给我的avatār
和预期的一样。
但是perl -pe 'y/A/ā/' <<< "avatAr"
和perl -pe 'tr/A/ā/' <<< "avatAr"
都给予我avat�r
。
为什么会这样呢?我怎样才能得到与替换相同的结果呢?
我也试过perl -Mutf8 -C24 -pe 'tr/A/ā/' <<< "avatAr"
,它给了我
Wide character in print at -e line 1, <> line 1.
avatār
我做错了什么才得到这个警告?y
而不是tr
的结果相同。
1条答案
按热度按时间r1wp621o1#
除了像kaavannan解释的那样需要
-Mutf8
之外,你还得到了“宽字符”警告,因为-C24
中的数字是数字,而不是标志,所以应该写为-C6
。更好的方法是使用标志并启用stderr:-CS
.