Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2049754
  • 博文数量: 354
  • 博客积分: 4955
  • 博客等级: 上校
  • 技术积分: 4579
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-21 11:46
文章分类

全部博文(354)

文章存档

2015年(1)

2013年(4)

2012年(86)

2011年(115)

2010年(67)

2009年(81)

我的朋友

分类:

2011-03-11 15:30:41

编码问题是广泛存在的,只有正确的编码才能在不同的地方正确的显示内容。而在数据的获取和转移过程中,编码经常是很需要注意的问题。
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));
阅读(759) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~