Rumah > Tutorial sistem > Siri Windows > Cara mengendalikan UTF8 dengan Perl pada konsol Windows

Cara mengendalikan UTF8 dengan Perl pada konsol Windows

王林
Lepaskan: 2024-01-12 09:42:05
ke hadapan
1054 orang telah melayarinya

Cara mengendalikan UTF8 dengan Perl pada konsol Windows

Cara mengendalikan UTF8 dengan Perl pada konsol Windows

Konsol direka bentuk untuk menggunakan UTF8, dan fon yang dipaparkan juga buruk Apakah yang perlu kita lakukan apabila program Perl dan fail yang akan dibaca oleh Perl menggunakan pengekodan UTF8? Mari kita lihat prosedur berikut terlebih dahulu:

#!/usr/bin/perl

gunakan pengekodan 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';

open(FILE,"c:\test1.txt");

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

@lines=;

tutup(FAIL);

untuk($i=0; $i

cetak $garisan[$i];

cetak "n";

}

$str="Helo";

cetak $str;

Atur cara ini menggunakan Perl untuk membaca fail teks test1.txt, dan kemudian memaparkannya pada konsol. Kuncinya ialah:

1. gunakan pengekodan 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';

gunakan pengekodan 'utf8': Tentukan format pengekodan fail skrip sebagai utf8;

STDIN=>'gb2312', STDOUT=>'gb2312': Input dan output menggunakan set aksara GB2312.

Dengan cara ini, aksara Cina dalam skrip Perl boleh dikeluarkan.

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

Nyatakan format pengekodan FAIL fail yang dibuka sebagai utf8, supaya data boleh dibaca ke dalam @lines dengan betul.

Ini membolehkan Perl memproses aksara UTF8 pada konsol Windows.

Cara membaca baris terakhir teks dengan rentetan bukan kosong dalam Perl

Tiga kaedah tersebut adalah seperti berikut:

#!/bin/perl -w

gunakan ketat;

my $str = "abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa hkl;fjh#dsjfklpafj";

############ Kaedah 1

$pos saya = -1;

my $num = 0;

sementara (($pos = indeks($str, "#", $pos)) >-1) {

cetak "ditemui di $posn";

$pos++;

$num++;

}

cetak "Terjumpa $num!n";

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

#Kaedah 2

kiraan $saya = 0;

sementara( $str =~ /#/g )

{

$count++;

}

cetak $count,"n";

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

# Kaedah 3

$cc saya = 0;

$tmp saya = 0;

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

{

$cc += $tmp;

}

cetak "$ccn";

Gunakan bahasa Perl: tulis program untuk membaca dalam rentetan perkataan dan keluarkan setiap perkataan dalam satu baris

#/usr/bin/perl

buka (IN, 'D:\words.txt ') ||

@words=();

dekat MASUK;

buka (KELUAR,'>','D:\wordlist.txt')atau mati $!;

foreach $line(@words){

$line=~s/n//g;

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

foreach $word(@words){

$perkataan=~s/W+//;

$freq {$word}++;

cetak $perkataan ."=>".$freq{$perkataan}."n";

}

}

tutup KELUAR;

Anda boleh mencuba program ini, fail boleh membaca teks asal terus tanpa perlu menulis perkataan setiap baris! Jika anda mempunyai sebarang pertanyaan, sila hubungi kami!

Ajar soalan program perl: baca kandungan daripada fail dan kandungannya ialah beberapa teks berturut-turut

#!/usr/bin/perl -w

gunakan ketat;

mati "perl $0 " melainkan(@ARGV==1);

buka (IN,$ARGV[0]) atau mati "Tidak dapat membuka fail $ARGV[0]!n";

buka (KELUAR,">data2") atau mati "Tidak dapat mencipta fail data2n";

semasa(){

chomp;

my @tmp=split /t/,$_;

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

cetak "$tmp[$tmpc-1]@2t@@@";

$tmpc++;

seterusnya;

}

cetak "t$tmp[$tmpc-1]";

}

cetak KELUAR"n";

}

Atas ialah kandungan terperinci Cara mengendalikan UTF8 dengan Perl pada konsol Windows. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:docexcel.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan