簡體   English   中英

Perl中文件句柄上的UTF-8編碼

[英]UTF-8 encoding on filehandle in Perl

我正在將UTF-8編碼應用於STDIN和STDOUT。 但是,如何確保將UTF-8編碼應用於傳遞給下面代碼的文件(如果在命令行中傳遞了文本文件,則<>將從文件而不是STDIN讀取文件)可能。

use open qw(:std :utf8)

while (<>) {
    print;
}

根據open pragma的文檔,您已經具有所需的行為:

open編譯指示用作為所有I / O聲明默認“層”(也稱為“學科”)的接口之一。 在此編譯指示的詞法范圍內找到的任何兩個參數的openreadpipe (aka qx// )和類似的運算符都將使用聲明的默認值。 如果未在MODE中指定IO層,則即使是三參數打開也可能會受到此編譯指示的影響。

perlop文檔告訴我們, while (<>) { ... }等效於

  unshift(@ARGV, '-') unless @ARGV; while ($ARGV = shift) { open(ARGV, $ARGV); while (<ARGV>) { ... # code for each line } } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM