如何在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
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
相关文章推荐
- 控制台如何像windows程序那样处理消息事件
- 如何利用MSXML做xml处理
- 在Windows的CMD中如何设置支持UTF8编码?
- 如何处理系统崩溃后的Windows 7(2)
- IE浏览时出现“为了帮助保护你的计算机,Windows已经关闭了此程序”等提示,如何处理?
- python输出中文——如何在Windows控制台打印不乱码
- 如何在Windows控制台上显示中文
- Windows 窗体控件中的多线程处理之:如何对 Windows 窗体控件进行线程安全调用
- 利用Jmail接收邮件,该如何处理
- Qt在Windows下如何创建无CMD窗口控制台程序
- 如何提高perl处理大文件的效率
- 在 Perl 中利用 DOM 和 XPath 对 XML 进行有效处理
- Windows Azure Cloud Service (15) 多个VM Instance场景下如何处理ASP.NET Session
- Windows 8 中“便笺”小工具和程序不见了如何处理
- 如何利用多线程显示图片处理图片
- 如何定位Release 版本中程序崩溃的位置 ---利用map文件 拦截windows崩溃函数
- 如何提高perl处理大文件的效率
- Linux下如何启动Tomcat像Windows启动并显示控制台日志信息一样?
- MySQL字符编码的讨论:如何处理emoji等4字节的Unicode字符 - utf8mb4 vs. utf8 Collations
- [windows编程] 如何利用句柄操作其他windows窗体