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字符集是一張巨大的 把世界上各種語言的字元和標點符號都編排到裡面,然後按照一定的順序給每個字元排號 很遺憾的是對於中文來說,這個順序不是按照漢語拼音的順序 有了這張巨大的 世界上大部分字...