如何在Windows控制台上利用Perl處理UTF8
如何在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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

微軟的最新PowerToys更新引入了改變遊戲的搜索功能,讓人聯想到MacOS的聚光燈。 此改進的“命令調色板”(以前是PowerToys運行)超過Windows R Run命令的功能和任務

KB5054979是2025年3月27日發布的Windows 11版本24H2的累積安全更新。它針對.NET框架版本3.5和4.8.1,增強了安全性和整體穩定性。值得注意的是,該更新使用System.io API在UNC共享的文件和目錄操作中解決了問題。提供了兩種安裝方法:一個通過Windows設置通過Windows Update下的更新,另一個通過Microsoft Update目錄中的手冊下載。

Nanoleaf的Pegboard Desk Dock:時尚且功能型的桌子組織者 厭倦了相同的舊充電設置? NanoLeaf的新Pegboard Desk Dock提供了一種時尚且功能性的替代方案。 這款多功能桌配件擁有32個全彩RGB

Kamrui GK3Plus Mini PC:小巧強勁,價格實惠! 亞馬遜春季大促期間,Kamrui GK3Plus Mini PC售價低至150美元以下!這款迷你電腦性能強勁,升級方便,體積小巧,是追求性價比用戶的理想之選。 無論是迷你電腦愛好者,還是初次嘗試小型電腦的用戶,Kamrui GK3Plus Mini PC都是一個絕佳的入門選擇。原價199美元,目前亞馬遜享受15%折扣(以及20美元優惠券),不到149美元即可入手。 如此親民的價格,卻擁有不俗的配置:搭載略顯老舊但仍可勝任的In

戴爾的Ultrasharp 4K Thunderbolt Hub Monitor(U2725QE):與OLED相匹配的LCD 多年來,我一直在垂涎的OLED監視器。 但是,戴爾(Dell)的新型UltrAslarp 4K Thunderbolt Hub Monitor(U2725QE)改變了我的想法,超出了其印象

掌握Windows 11中的惡意軟件檢測:三種簡單的方法 惡意軟件,涵蓋病毒,廣告軟件和數據宣傳代碼,構成了重大威脅。 每秒發動驚人的190,000次攻擊,有效的惡意軟件檢測至關重要。本指南

許多免費應用程序在功能上與他們的付費同行抗衡。 該列表展示了流行付費軟件的絕佳免費Windows替代方案。 我堅信使用免費軟件,除非有付費選項提供至關重要的,缺失的功能。 這些

Windows系统的辅助功能并非只为残障人士设计,它也能显著提升普通用户的生产力。即使没有残疾,我也依靠一些辅助功能来提高效率,甚至无法想象没有它们该如何使用Windows。以下是一些值得尝试的功能: 轻松观看视频:使用实时字幕 有时为了节省时间,我会加快视频播放速度,但这会使音频难以理解。或者,演讲者口音较重、内容包含专业术语,或者我在图书馆无法使用耳机。在这些情况下,我会依靠Windows的实时字幕功能,它可以为任何音频生成实时字幕,方便阅读。 启用此功能,打开“设置”应用,导航到“辅助
