
La console est conçue pour utiliser UTF8, et les polices affichées sont également laides Que devons-nous faire lorsque le programme Perl et les fichiers à lire par Perl utilisent l'encodage UTF8 ? Jetons d'abord un coup d'œil à la procédure suivante :
#!/usr/bin/perl
utilisez l'encodage 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';
open(FILE,"c:\test1.txt");
binmode(FILE,":encoding(utf8)");
@lines=
fermer(FICHIER);
pour($i=0; $i
imprimer $lines[$i];
imprimer "n";
}
$str="Bonjour";
imprimer $str;
Ce programme utilise Perl pour lire un fichier texte test1.txt, puis l'affiche sur la console. La clé est :
1. utilisez l'encodage 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';
utiliser l'encodage 'utf8' : spécifiez le format d'encodage du fichier de script comme utf8 ;
STDIN=>'gb2312', STDOUT=>'gb2312' : l'entrée et la sortie utilisent le jeu de caractères GB2312.
De cette façon, les caractères chinois du script Perl peuvent être affichés.
2:binmode(FILE,":encoding(utf8)");
Spécifiez le format d'encodage du fichier ouvert FILE comme utf8, afin que les données puissent être lues correctement dans @lines.
Cela permet à Perl de traiter les caractères UTF8 sur la console Windows.
Les trois méthodes sont les suivantes :
#!/bin/perl -w
utilisez strict ;
mon $str = "abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa hkl;fjh#dsjfklpafj";
########### Méthode 1
mon $pos = -1;
mon $num = 0;
while (($pos = index($str, "#", $pos)) >-1) {
print "trouvé chez $posn";
$pos++;
$num++;
}
print "Trouvé $num!n";
############################################ ### ###########
#Méthode 2
mon compte $ = 0 ;
pendant( $str =~ /#/g )
{
$compte++;
}
imprimer $count,"n";
######################################
#Méthode 3
mon $cc = 0;
mon $tmp = 0;
if( $tmp = () = ($str =~ /#/g ) )
{
$cc += $tmp;
}
imprimer "$ccn";
#/usr/bin/perl
ouvrir (IN, 'D:\words.txt ') || mourir $!;
@words=();
fermer IN;
ouvrez (OUT,'>','D:\wordlist.txt')ou mourez $!;
foreach $line (@words){
$line=~s/n//g;
@words=split /s+/,$line;
foreach $word (@words){
$mot=~s/W+//;
$fréq {$mot}++;
imprimer OUT $word ."=>" $freq{$word}."n";
.}
}
clôture ;
Vous pouvez essayer ce programme, le fichier peut lire le texte original directement sans avoir à écrire un mot par ligne ! Si vous avez des questions, veuillez nous contacter !
#!/usr/bin/perl -w
utilisez strict ;
die "perl $0 " à moins que (@ARGV==1);
ouvrir (IN,$ARGV[0]) ou mourir "Impossible d'ouvrir le fichier $ARGV[0]!n";
ouvrir (OUT,">data2") ou mourir "Impossible de créer le fichier data2n";
pendant(){
chomp;
mon @tmp=split /t/,$_;
pour(mon $tmpc=1;$tmpcif($tmp[$tmpc-1] eq $tmp[$tmpc]){
imprimer "$tmp[$tmpc-1]@2t@@@";
$tmpc++;
suivant ;
}
imprimer "t$tmp[$tmpc-1]";
}
imprimer OUT"n";
}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Comment obtenir des données en HTML
Introduction aux paramètres de l'indice de performances du processeur
Quel fichier est une ressource ?
Classement des dix principaux échanges de devises numériques
Pourquoi toutes les icônes dans le coin inférieur droit de Win10 apparaissent-elles ?
Outils de gestion MySQL couramment utilisés
utilisation de la fonction createmutex
Comment ignorer la connexion réseau lors de l'installation de Win11