ホームページ > 記事 > システムチュートリアル > Windows コンソールで Perl を使用して UTF8 を処理する方法
コンソールは UTF8 を使用するように設計されており、表示されるフォントは醜いです。Perl プログラムおよび Perl が読み取るファイルが UTF8 エンコードを使用している場合はどうすればよいですか?まず次のプログラムを見てください:
#!/usr/bin/perl
エンコーディング 'utf8'、STDIN=>'gb2312'、STDOUT=>'gb2312';
を使用してください。open(FILE,"c:\\test1.txt");
binmode(FILE,":encoding(utf8)");
@行=
閉じる(ファイル);
for($i=0; $i
$lines[$i]を印刷;
「\n」を印刷;
}
$str="こんにちは";
$str;
を印刷このプログラムは、Perl を使用してテキスト ファイル test1.txt を読み取り、コンソールに表示します。キーは次のとおりです:
1. エンコーディング 'utf8'、STDIN=>'gb2312'、STDOUT=>'gb2312';
を使用します。エンコーディング 'utf8' を使用: スクリプト ファイルのエンコーディング形式を utf8 として指定します;
STDIN=>'gb2312', STDOUT=>'gb2312': 入力と出力には GB2312 文字セットが使用されます。
このようにして、Perlスクリプト内の漢字を出力することができます。
2:binmode(FILE,":encoding(utf8)");
@lines にデータを正しく読み込めるように、開くファイル FILE のエンコード形式を utf8 に指定します。
これにより、Perl が Windows コンソール上で UTF8 文字を処理できるようになります。
3 つの方法は次のとおりです。
#!/bin/perl -w
厳密を使用;
my $str = "abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa hkl;fjh#dsjfklpafj";
方法 1私の $pos = -1;
私の $num = 0;
while (($pos =index($str, "#", $pos)) >-1) {
print "$pos で見つかりました\n";
$位置 ;
$番号 ;
}
print "$num 個見つかりました!\n";
##################################
# 方法 2私の $count = 0;
while( $str =~ /#/g )
{
$カウント ;
}
print $count,"\n";
# 方法 3
私の $cc = 0;
私の $tmp = 0;
if( $tmp = () = ($str =~ /#/g ) )
{
$cc = $tmp;
}
print "$cc\n";
Perl 言語を使用します。単語の文字列を読み取り、各単語を 1 行に出力するプログラムを作成します。
#/usr/bin/perl
@単語=();
INを閉じる;
open (OUT,'>','D:\\wordlist.txt')or die $!;
foreach $line(@words){
$line=~s/\n//g;
@words=分割 /\s /,$line;
foreach $word(@words){
$word=~s/\W //;
$頻度 {$word} ;
print OUT $word ."=>". $freq{$word}."\n";
}
}
終了;
このプログラムを試してみてください。ファイルの各行に一言も書き込まなくても、元のテキストを直接読むことができます。ご質問がございましたら、お気軽にお問い合わせください。
Perl プログラムの質問を教えます: ファイルからコンテンツを読み取り、そのコンテンツは行内のテキストです
#!/usr/bin/perl -w
厳密を使用;
###die "perl $0 " until(@ARGV==1);### ###open (IN,$ARGV[0]) or die "ファイル $ARGV[0] を開けません!\n";### ###open (OUT,">data2") or die "ファイル data2 を作成できません\n";### ###その間(){### ###むしゃむしゃ;### ###my @tmp=split /\t/,$_;### ###for(my $tmpc=1;$tmpcif($tmp[$tmpc-1] eq $tmp[$tmpc]){### ###print OUT "$tmp[$tmpc-1]\@2\t\@\@\@";### ###$tmpc ;### ###次;### ###}### ###出力 "\t$tmp[$tmpc-1]"を出力します;### ###}### ###出力 "\n";### ###}###以上がWindows コンソールで Perl を使用して UTF8 を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。