Heim  >  Artikel  >  System-Tutorial  >  Umgang mit UTF8 mit Perl auf der Windows-Konsole

Umgang mit UTF8 mit Perl auf der Windows-Konsole

王林
王林nach vorne
2024-01-12 09:42:051014Durchsuche

Umgang mit UTF8 mit Perl auf der Windows-Konsole

Wie man mit UTF8 mit Perl auf der Windows-Konsole umgeht

Die Konsole ist für die Verwendung von UTF8 ausgelegt und die angezeigten Schriftarten sind ebenfalls hässlich. Was sollen wir tun, wenn das Perl-Programm und die von Perl zu lesenden Dateien UTF8-Codierung verwenden? Schauen wir uns zunächst den folgenden Ablauf an:

#!/usr/bin/perl

Verwenden Sie die Kodierung 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';

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

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

@lines=;

close(DATEI);

for($i=0; $i

$lines[$i] drucken;

Drucken "n";

}

$str="Hallo";

print $str;

Dieses Programm verwendet Perl, um eine Textdatei test1.txt zu lesen und sie dann auf der Konsole anzuzeigen. Der Schlüssel ist:

1. Verwenden Sie die Kodierung 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';

Kodierung „utf8“ verwenden: Geben Sie das Kodierungsformat der Skriptdatei als utf8;

an

STDIN=>'gb2312', STDOUT=>'gb2312': Eingabe und Ausgabe verwenden den Zeichensatz GB2312.

Auf diese Weise können die chinesischen Zeichen im Perl-Skript ausgegeben werden.

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

Geben Sie das Kodierungsformat der geöffneten Datei FILE als utf8 an, damit die Daten korrekt in @lines eingelesen werden können.

Dadurch kann Perl UTF8-Zeichen auf der Windows-Konsole verarbeiten.

So liest man die letzte Textzeile mit einer nicht leeren Zeichenfolge in Perl

Die drei Methoden sind wie folgt:

#!/bin/perl -w

streng verwenden;

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

########### Methode 1

mein $pos = -1;

meine $num = 0;

while (($pos = index($str, "#", $pos)) >-1) {

print "gefunden bei $posn";

$pos++;

$num++;

}

print "Gefunden $num!n";

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

#Methode 2

my $count = 0;

while( $str =~ /#/g )

{

$count++;

}

print $count,"n";

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

# Methode 3

mein $cc = 0;

mein $tmp = 0;

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

{

$cc += $tmp;

}

drucken "$ccn";

Verwenden Sie die Perl-Sprache: Schreiben Sie ein Programm, um eine Wortfolge einzulesen und jedes Wort in einer Zeile auszugeben

#/usr/bin/perl

open (IN, 'D:\words.txt ') ||. die $!;

@words=();

in der Nähe;

open (OUT,'>','D:\wordlist.txt')oder sterben $!;

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

}

}

schließen AUS;

Sie können dieses Programm ausprobieren. Die Datei kann den Originaltext direkt lesen, ohne ein Wort pro Zeile schreiben zu müssen! Bei Fragen kontaktieren Sie uns bitte!

Lernen Sie eine Perl-Programmfrage: Lesen Sie den Inhalt aus der Datei und der Inhalt ist ein Text in einer Zeile

#!/usr/bin/perl -w

streng verwenden;

die "perl $0 " es sei denn(@ARGV==1);

öffnen (IN,$ARGV[0]) oder sterben "Datei $ARGV[0]!n";

kann nicht geöffnet werden

open (OUT,">data2") or die "Datei data2n kann nicht erstellt werden;

while(){

chomp;

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

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

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

$tmpc++;

nächster;

}

print OUT „t$tmp[$tmpc-1]“;

}

ausdrucken"n";

}

Das obige ist der detaillierte Inhalt vonUmgang mit UTF8 mit Perl auf der Windows-Konsole. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen