perl對於utf8編碼檔案的substr

2021-06-09 12:51:51 字數 742 閱讀 9698

perl指令碼本省使用utf8編碼,環境預設編碼為utf8

1.加上

use utf8;

後,print substr("哈哈",0,1),"\n";就正常輸出了

2.但是,讀入utf8編碼的檔案在做substr還是有問題,加上

fh,"<:utf8"

就好了

wide character in print 的警告資訊,加上

3.但是,會有

binmode(stdin, ':encoding(utf8)');

binmode(stdout, ':encoding(utf8)');

binmode(stderr, ':encoding(utf8)');

就好了

#!/usr/bin/perl

use strict;

use warnings;

use utf8;

binmode(stdin, ':encoding(utf8)');

binmode(stdout, ':encoding(utf8)');

binmode(stderr, ':encoding(utf8)');

print substr("哈哈",0,1),"\n";

open

fh,"<:utf8"

, $file"||die "can't open file:$!";

my $i=0;

while()

close fh;

介紹utf8編碼

utf8並不算是一種電腦編碼,而是一種儲存和傳送的格式,如前所述,每個unicode ucs字元都以 2或4個bytes來儲存,看看以下的比較 以 i am chinese 為例 用ansi儲存 12 bytes 用unicode ucs2儲存 24 bytes 2 bytes header 用uc...

UTF8編碼 解碼

參考文件 rfc3629標準.對於任意乙個字,都可以用乙個唯一碼 unicode碼,由標準編制 表示,在應用過程中,需要對碼進行編碼.常用的編碼方式為utf 8.utf 8採用類似於ip位址分配的機制.即對於不同範圍的unicode碼,採用不同的模板進行編碼.流程概述為 2.1 查表獲取unicod...

utf8的編碼演算法

unicode字符集是我們世界上最完善最全面的字符集,幾乎包含了世界上所有的字元。其實可以這麼理解,unicode字符集是一張巨大的 把世界上各種語言的字元和標點符號都編排到裡面,然後按照一定的順序給每個字元排號 很遺憾的是對於中文來說,這個順序不是按照漢語拼音的順序 有了這張巨大的 世界上大部分字...