怎么将16进制转为UTF8字符?

怎么将16进制转为UTF8字符?

怎么将16进制转为UTF8字符?
参考了别人的:
use Encode;
$text="\xA4";
$text =~ s/[^\x01-\x7F]/pack("U", ord($&))/sgie;
print "$text\n";
$text = encode("utf8", $text);#需要用这个吗?
print $text;
有的可以转为可以显示的,如\xA4,则显示两个¤。
但有的就不行,如 \xC2..
不知道为什么,有达人请指教下吗?另外,超过256的怎么转呢?我曾经碰到\xC2\A9.这样的怎么弄?
$text = encode(
$text = encode("utf8", $text);#需要用这个吗?
这个函数的意思是?
我知道如果将$text转化为utf8,应该是这样写的吧?
$text = decode("gb2312",$text);#gb2312为目前的编码格式,转化为utf8;