编码问题是广泛存在的,只有正确的编码才能在不同的地方正确的显示内容。而在数据的获取和转移过程中,编码经常是很需要注意的问题。
perl有功能很好的编码处理模块Encode。在程序里简单的use Encode就可以使用了。
用到的方法主要是两个:
结果 = encode(编码方式a,要转码的字串)
结果 = decode(编码方式b,要转码的字串);
encode的作用是把字串编码成“编码方式a”,decode的作用是把以"编码方式b"编码的字串解码。
要注意的是,encode方法里的字串,需要是已经解码过的。
也就是说,要把gb2312编码的字串专成utf8,不能直接encode("utf8", gb2312_string),而要encode("utf8",decode("gb2312",gb2312))
也就是说,似乎Encode模块内部有一种格式。作为encode和decode方法的中间格式。decode可以把某种编码转成这种格式,而encode可以把这种格式转化成特定的编码。
应该说清楚了..
use Encode;
gbk->uft-8:
$line = encode("utf-8",decode("gbk",$line));
或
$line = encode_utf8(decode("gbk",$line));
utf-8->gbk:
$line = encode("gbk", decode("utf8", $line));
uft-8->gb2312:
$line = encode("gb2312", decode("utf8", $line));
阅读(790) | 评论(0) | 转发(0) |