Maison  >  Article  >  Tutoriel système  >  Comment gérer UTF8 avec Perl sur la console Windows

Comment gérer UTF8 avec Perl sur la console Windows

王林
王林avant
2024-01-12 09:42:051014parcourir

Comment gérer UTF8 avec Perl sur la console Windows

Comment gérer UTF8 avec Perl sur la console Windows

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.

Comment lire la dernière ligne de texte avec une chaîne non vide en Perl

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

Utilisez le langage Perl : écrivez un programme pour lire une chaîne de mots et afficher chaque mot dans une ligne

#/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 !

Enseigner une question de programme Perl : lisez le contenu du fichier et le contenu est du texte d'affilée

#!/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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer