“utf8 :: upgrade”和“is_utf8 / decode'latin1'”之间有区别吗?

时间:2013-04-29 16:46:58

标签: perl encoding utf-8

这两个代码片段是一样的吗?

utf8::upgrade( $s );

use Encode qw(is_utf8 decode);

$s = is_utf8( $s ) ? $s : decode( 'latin1', $s );

1 个答案:

答案 0 :(得分:2)

制作副本以及这样的含义,它们是相同的,但仅仅是因为decode('latin1', $_)如何处理无效的latin1字符串,例如"\x90"

表达式返回不同的内容(内部使用的字节数与$s),但我认为你丢弃了它。

我希望你问,因为你想用前者取代后者!