日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Perl輸出中文亂碼解決方法

Perl是一種動態(tài)解釋型的腳本語言。 最初的設(shè)計(jì)者為拉里·沃爾(Larry Wall),它于1987年12月18日發(fā)表。Perl借取了C、sed、awk、shell scripting 以及很多其他編程語言的特性。其中最重要的特性是他內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫 CPAN。

方法/步驟

就以 windows 上的 ActivePerl 為例。

代碼特別簡單,就是一句:

print "你好";

卻出現(xiàn)了亂碼,如圖。

遇到這樣的問題,我們要怎么辦?

其實(shí)就是 perl 編碼的問題,這其實(shí)和我們操作系統(tǒng)的編碼有關(guān)。

我們打開 cmd 命令提示符,輸入 chcp 獲得編碼類型代碼。

可見,這里的 windows 是代號 936 為默認(rèn)編碼格式。

然后我們可以看到,936 代碼頁對應(yīng)的是 gb2313(即中文),或者說是 gbk。

我們知道了我們 windows 是用 gb2312 編碼的,這時(shí)我們只要改變編碼格式即可。

在代碼頭部輸入:

use utf8;
#引入utf8模塊 腳本內(nèi)的字符串使用utf8作為編碼格式
binmode(STDOUT,":encoding(gbk)");
#標(biāo)準(zhǔn)輸出使用gbk作為編碼格式,也可以把gbk改為gb2312
binmode(STDIN,":encoding(gbk)");
#如果涉及到輸入流,例如讀文件,不加這條讀中文文件會出現(xiàn)亂碼
binmode(STDERR,":encoding(gbk)");
#如果異常錯誤中的字符串有中文,請加上STDERR,否則也會出現(xiàn)亂碼
print "你好";

此時(shí)是不是就能正常輸出中文了呢?

一定要注意一點(diǎn),如果代碼涉及到讀取中文的文件,一定要加 上binmode(STDIN,”:encoding(gbk)”);。


還有一種方法,針對我們 STDIN、STDOUT、STDERR(即標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤)統(tǒng)統(tǒng)使用某種編碼作為編碼格式。

還是那個簡單的小程序,print 輸出一個中文。

代碼如下:

use utf8;
use open ":encoding(gbk)",":std";
#標(biāo)準(zhǔn)輸入、輸出、錯誤皆用gbk編碼格式進(jìn)行編碼
print "你好";


新聞標(biāo)題:Perl輸出中文亂碼解決方法
URL分享:http://www.5511xx.com/article/cogohjs.html