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

Cara mengendalikan UTF8 dengan Perl pada konsol Windows

王林
王林ke hadapan
2024-01-12 09:42:051017semak imbas

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!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam