[英]Perl convert a filehandle in-place/streaming from cp1252 to 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聲明默認“層”(也稱為“學科”)的接口之一。 在此編譯指示的詞法范圍內找到的任何兩個參數的open
,readpipe
(akaqx//
)和類似的運算符都將使用聲明的默認值。 如果未在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.