Maison> Tutoriel système> Série Windows> le corps du texte

Comment gérer UTF8 avec Perl sur la console Windows

王林
Libérer: 2024-01-12 09:42:05
avant
941 Les gens l'ont consulté

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!

source:docexcel.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!