您的位置:首页 > 其它

如何在Windows控制台上利用Perl处理UTF8

2008-07-21 14:48 281 查看
Windows控制台支持的字体很少,所以即使用

chcp 65001

制定控制台使用UTF8,显示出来的字体也很难看,当Perl程序和Perl要读取的文件都使用UTF8编码时,怎么办呢?先看如下程序:
#!/usr/bin/perl
use encoding 'utf8',
STDIN=>'gb2312',
STDOUT=>'gb2312';
open(FILE,"c:\\test1.txt");

binmode(FILE,":encoding(utf8)");

@lines=<FILE>;

close(FILE);
for($i=0; $i<@lines; $i++){

print $lines[$i];

print "\n";

}
$str="你好";

print $str;

该程序用Perl去读取一个文本文件test1.txt,然后显示到控制台上。关键在于:

1. use encoding 'utf8', STDIN=>'gb2312',
STDOUT=>'gb2312';

use encoding 'utf8' :
指定该脚本文件的编码格式为utf8;

STDIN=>'gb2312', STDOUT=>'gb2312':
输入和输出采用GB2312字符集。

这样,Perl脚本中的的汉字即可被输出。

2:binmode(FILE,":encoding(utf8)");

指定打开的文件FILE的编码格式为utf8,这样就能正确的读入数据到@lines中了。

这样就实现了Perl在Windows控制台上处理UTF8字符了。
本文出自 “布衣坊” 博客,请务必保留此出处http://kevdmx.blog.51cto.com/429766/88787
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: