这两个代码片段是一样的吗?
utf8::upgrade( $s );
use Encode qw(is_utf8 decode);
$s = is_utf8( $s ) ? $s : decode( 'latin1', $s );
答案 0 :(得分:2)
制作副本以及这样的含义,它们是相同的,但仅仅是因为decode('latin1', $_)
如何处理无效的latin1字符串,例如"\x90"
。
表达式返回不同的内容(内部使用的字节数与$s
),但我认为你丢弃了它。
我希望你问,因为你想用前者取代后者!