如何在Windows控制台上利用Perl處理UTF8
制定控制台使用UTF8,顯示出來的字體也很難看,當Perl程式和Perl要讀取的檔案都使用UTF8編碼時,該怎麼辦呢?先看如下程式:
#!/usr/bin/perl
use encoding 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';
open(FILE,"c:\\test1.txt");
binmode(FILE,":encoding(utf8)");
@lines=
close(FILE);
for($i=0; $i
print $lines[$i];
print "\n";
}
$str="你好";
print $str;
該程式用Perl去讀取一個文字檔test1.txt,然後顯示到控制台上。關鍵在於:
1. use encoding 'utf8', STDIN=>'gb2312', STDOUT=>'gb2312';
use encoding 'utf8' : 指定該腳本檔案的編碼格式為utf8;
STDIN=>'gb2312', STDOUT=>'gb2312': 輸入與輸出採用GB2312字元集。
這樣,Perl腳本中的漢字即可被輸出。
2:binmode(FILE,":encoding(utf8)");
指定開啟的檔案FILE的編碼格式為utf8,這樣就能正確的讀入資料到@lines中了。
這樣就實作了Perl在Windows控制台上處理UTF8字元了。
Perl如何讀取文字的最後一行非空字串
三個方法如下:
#!/bin/perl -w
use strict;
my $str = "abcsfsaf#sdagasdga#sdgaghoiiopjh#dsfjkopa hkl;fjh#dsjfklpafj";
## 方法一my $pos = -1;
my $num = 0;
while (($pos = index($str, "#", $pos)) >-1) {
print "found at $pos\n";
$pos ;
$num ;
}
print "找到$num個!\n";
# 方法二
my $count = 0;
while( $str =~ /#/g )
{
$count ;
}
print $count,"\n";
## 方法3
my $cc = 0;
my $tmp = 0;
if( $tmp = () = ($str =~ /#/g ) )
{
$cc = $tmp;
###}### ###print "$cc\n";### ###用Perl語言:寫一個程式讀入一串單字一個單字一行輸出每一 ### ####/usr/bin/perl### ###open (IN, 'D:\\words.txt ') || die $!;### ###@words=();### ###close IN;### ###open (OUT,'>','D:\\wordlist.txt')or die $!;### ###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";### ###}### ###}### ###close OUT;### ###你試試看這個程序,檔案可以不用每行一個單詞,直接讀取原始文字就好!有問題再交流! ### ###教一個perl程式題:從檔案中讀取內容內容就一排是一些文字 ### ####!/usr/bin/perl -w### ###use strict;### ###die "perl $0 " unless(@ARGV==1);### ###open (IN,$ARGV[0]) or die "Can't open file $ARGV[0]!\n";### ###open (OUT,">data2") or die "Can't create file data2\n";### ###while(){### ###chomp;### ###my @tmp=split /\t/,$_;### ###for(my $tmpc=1;$tmpcif($tmp[$tmpc-1] eq $tmp[$tmpc]){### ###print OUT "$tmp[$tmpc-1]\@2\t\@\@\@";### ###$tmpc ;### ###next;### ###}### ###print OUT "\t$tmp[$tmpc-1]";### ###}### ###print OUT "\n";### ###}###以上是如何在Windows控制台上利用Perl處理UTF8的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文回顧了六個密碼管理人員,並比較了他們的功能和優勢。 每個經理都以圖像和優點和缺點的簡明摘要強調。 1Password:最佳總體。 出色的多平台性能,直覺I

通過網絡重置解決Windows 11 Wi-Fi連接問題 在Windows 11 PC上遇到Wi-Fi或Internet連接問題? 重置網絡設置通常可以解決這些問題。本指南詳細介紹了過程以及什麼

本文重點介紹了十個出色的開源應用程序,這些應用程序提供了強大的功能,而無需商業替代方案的成本或隱私折衷。 讓我們探索這些強大的工具: 記事本:高級文本編輯器:顯著

命令提示:您的秘密武器用於故障窗口問題 自從我開始使用Windows以來,我很少去一個月而沒有遇到某種問題。我的首選解決方案? 通常被忽略的命令提示。 雖然最初是殺傷性的

Windows 系統警告:不容忽視的六大信號 許多人覺得Windows通知很煩人,常常不看就關閉。但忽視所有通知可能會適得其反。有些警告會提示系統出現嚴重問題,延誤處理可能會危及設備安全。以下是一些你絕對不能忽視的警告。 磁盤空間不足通知 當你的系統驅動器(通常是C盤)存儲空間不足時,就會出現“磁盤空間不足”警告。 Windows需要空閒空間來處理保存臨時文件、安裝更新和管理虛擬內存等任務。空間不足會導致系統速度變慢、凍結甚至崩潰。重要的安全更新也可能無法安裝。 鑑於這會嚴重影響性能和穩定

解決Windows 11中的應用程序兼容性問題,並具有兼容模式 應用程序是否拒絕在Windows 11系統上啟動或表現出色? Windows 11的兼容模式通常可以解決這些問題。本指南解釋瞭如何

Windows 11淘汰潮:你的舊電腦迎來新生!大量企業即將淘汰無法運行Windows 11的電腦,但這對Linux用戶來說是絕佳機會! Windows 10即將壽終正寢,許多電腦無法運行Windows 11 企業需要在設備上運行最新軟件以獲得支持、維護基礎設施安全和保護用戶數據。 Windows 11是最新版本的Windows操作系統,但它對硬件有非常具體的嚴格要求,許多企業現有的電腦無法滿足這些要求,因此它們長期以來一直堅持使用老舊的Windows 10。 然而,Windows 10將於202

通過基本附加組件和擴展來增強您的文件資源管理器體驗 File Explorer是一種基本的Windows工具,但是可以通過正確的附加組件和擴展來顯著擴展其功能。這些工具簡化文件管理,


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。