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

王林
发布: 2024-01-12 09:42:05
转载
1360人浏览过

如何在windows控制台上利用perl处理utf8

如何在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 " ";

}

$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 $pos ";

$pos++;

$num ++;

}

print "找到$num个! ";

###############################################################

# 方法二

my $count = 0;

while( $str =~ /#/g )

{

$count ++;

}

print $count," ";

##########################################

美图AI开放平台
美图AI开放平台

美图推出的AI人脸图像处理平台

美图AI开放平台 53
查看详情 美图AI开放平台

# 方法3

my $cc = 0;

my $tmp = 0;

if( $tmp = () = ($str =~ /#/g ) )

{

$cc += $tmp;

}

print "$cc ";

用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/ //g;

@words=split /s+/,$line;

foreach $word(@words){

$word=~s/W+//;

$freq {$word}++;

print OUT $word ."=>". $freq{$word}." ";

}

}

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]! ";

open (OUT,">data2") or die "Can't create file data2 ";

while(){

chomp;

my @tmp=split / /,$_;

for(my $tmpc=1;$tmpcif($tmp[$tmpc-1] eq $tmp[$tmpc]){

print OUT "$tmp[$tmpc-1]@2 @@@";

$tmpc++;

next;

}

print OUT " $tmp[$tmpc-1]";

}

print OUT " ";

}

以上就是如何在Windows控制台上利用Perl处理UTF8的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:Excel办公网网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号