如何在Windows控制台上利用Perl处理UTF8
制定控制台使用UTF8,显示出来的字体也很难看,当Perl程序和Perl要读取的文件都使用UTF8编码时,怎么办呢?先看如下程序:
#!/usr/bin/perl
use encoding 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';
open(FILE,"c:\test1.txt");
binmode(FILE,":encoding(utf8)");
@lines=
close(FILE);
for($i=0; $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字符了。
Perl如何读取文本的最后一行非空字符串
三个方法如下:
#!/bin/perl -w
use strict;
my $str = "abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa hkl;fjh#dsjfklpafj";
########### 方法一
my $pos = -1;
my $num = 0;
while (($pos = index($str, "#", $pos)) >-1) {
print "found at $posn";
$pos++;
$num ++;
}
print "找到$num个!n";
###############################################################
# 方法二
my $count = 0;
while( $str =~ /#/g )
{
$count ++;
}
print $count,"n";
##########################################
# 方法3
my $cc = 0;
my $tmp = 0;
if( $tmp = () = ($str =~ /#/g ) )
{
$cc += $tmp;
}
print "$ccn";
用Perl语言:写一个程序读入一串单词一个单词一行输出每一
#/usr/bin/perl
open (IN, 'D:\words.txt ') || die $!;
@words=();
close IN;
open (OUT,'>','D:\wordlist.txt')or die $!;
foreach $line(@words){
$line=~s/n//g;
@words=split /s+/,$line;
foreach $word(@words){
$word=~s/W+//;
$freq {$word}++;
print OUT $word ."=>". $freq{$word}."n";
}
}
close OUT;
你试一下这个程序,文件可以不用每行一个单词,直接读取原文本就好!有问题再交流!
教一个perl程序题:从文件中读取内容内容就一排是一些文字
#!/usr/bin/perl -w
use strict;
die "perl $0 " unless(@ARGV==1);
open (IN,$ARGV[0]) or die "Can't open file $ARGV[0]!n";
open (OUT,">data2") or die "Can't create file data2n";
while(){
chomp;
my @tmp=split /t/,$_;
for(my $tmpc=1;$tmpcif($tmp[$tmpc-1] eq $tmp[$tmpc]){
print OUT "$tmp[$tmpc-1]@2t@@@";
$tmpc++;
next;
}
print OUT "t$tmp[$tmpc-1]";
}
print OUT "n";
}
以上是如何在Windows控制台上利用Perl处理UTF8的详细内容。更多信息请关注PHP中文网其他相关文章!

ACER PD163Q双便携式显示器:连通性噩梦 我对Acer PD163Q寄予厚望。双重便携式显示器的概念是通过单个电缆方便地连接的,非常吸引人。 不幸的是,这个诱人的想法quic

升级到Windows 11:增强您的PC游戏体验 Windows 11提供令人兴奋的新游戏功能,可显着改善您的PC游戏体验。 对于从Windows 10移动的任何PC游戏玩家来说,此升级值得考虑。 自动HDR:Eleva

Alienware AW3225QF:最佳曲面4K显示器,值得入手吗? Alienware AW3225QF被誉为最佳曲面4K显示器,其强大的性能毋庸置疑。极速响应时间、惊艳的HDR效果和无限对比度,再加上出色的色彩表现,都是这款显示器的优势所在。虽然主要面向游戏玩家,但如果能接受OLED的不足,它也同样适合追求高效率的办公人士。 宽屏显示器不仅深受游戏玩家喜爱,也受到重视生产力提升用户的青睐。它们非常适合工作,并且能提升任何人的桌面体验。这款Alienware显示器价格通常较高,但目前正享受

目录在使用大型文件时,目录是一个总体上改变游戏的人 - 它可以使所有内容都井井有条且易于浏览。不幸的是,与Word不同,Microsoft Excel没有一个简单的“目录”按钮,它添加了T

ReactOS 0.4.15包括新的存储驱动程序,这应该有助于总体稳定性和UDB驱动器兼容性,以及用于网络的新驱动因素。字体支持,桌面外壳,Windows API,主题和文件也有许多更新

购买新显示器并不是经常发生的。 这是一项长期投资,经常在计算机之间移动。但是,升级是不可避免的,最新的屏幕技术很诱人。 但是做出错误的选择会让您感到遗憾


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。