神奇的Perl-第六个任务(4)
本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载
4) 通过指定文件句柄MYTXT的编码,指定my.txt使用GBK编码
open MYTXT,”>my.txt”;
binmode(MYTXT, ':encoding(BGK)');
1) 输出unicode字符,perl4-17.pl部分代码如下:
my $v="\x{80DC}";#“胜”的十六进制unicode编码为80DC
print $v;#输出”胜”
1.1 直接解码和编码
使用Encode模块完成对某字符串的编码和解码,相对中文字符而言,字符编码主要是GBK和UTF8。
1、 解码
使用decode子程序,将指定编码的字符串解码为Perl内部格式的字符串。语法如下:
decode(字符编码,待解码字符串);
2、 编码
使用encode子程序,将Perl内部格式的字符串编码为指定编码的字符串。语法如下:
encode(字符编码,待编码字符串);
1、 我们以读取utf8格式的perl4-16-utf8.txt,然后以gbk格式输出到屏幕和perl4-16-gbk.txt文件为例。以下是部分代码,全部代码在书的附属光盘内: my $newline=decode("utf8",$line); #完成UTF8解码到PERL内部格式字符串 print "$newline\n";#以gbk格式输出到屏幕 print MYTXTGBK encode("GBK",$newline);#以gbk格式输出到perl4-16-gbk.txt文件
上一篇: 神奇的Perl-正则表达式(8)