Perl 不同utf8的开放pragma有什么不同?
这三个版本的行为都不同吗Perl 不同utf8的开放pragma有什么不同?,perl,utf-8,Perl,Utf 8,这三个版本的行为都不同吗 use open qw( :encoding(UTF-8) :std ); use open qw( :encoding(UTF8) :std ); use open qw( :utf8 :std ); 首先,:utf8仅将文本标记为UTF-8,不检查其是否有效。有关信息,请参阅 :编码是PerlIO的扩展层,perlperldoc perliol “:编码”使用编码; 使该层可用,尽管PerlIO.pm“知道”在哪里可以找到它。这是一个层的例子,它采用了
use open qw( :encoding(UTF-8) :std );
use open qw( :encoding(UTF8) :std );
use open qw( :utf8 :std );
首先,
:utf8
仅将文本标记为UTF-8,不检查其是否有效。有关信息,请参阅
:编码是PerlIO的扩展层,perlperldoc perliol
“:编码”使用编码;
使该层可用,尽管PerlIO.pm“知道”在哪里可以找到它。这是一个层的例子,它采用了一个被称为的参数:open($fh),Evan似乎有你的答案。为了将来的易用性,请参阅“打开Unicode-所有这些”。这可能有答案,或者至少对你有帮助。Perl Unicode Cookbook是我问这个问题的原因。直到现在我使用使用OpenQW(:编码)(UTF-8):std);
我认为这会是一个“更好”的选择。但是现在我看到这本书的作者使用了开放qw(:std:utf8);
我想他知道自己在做什么。那么你会推荐什么,使用开放qw(:std:encoding(UTF-8))
或者使用开放qw(:std:utf8)
?如上所述,后者在阅读时被认为是危险的,但仍然是@tchrist在中推荐的。有什么原因吗?