首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl6:从IO::路径对文件名进行解码总是正确的吗?

Perl6:从IO::路径对文件名进行解码总是正确的吗?
EN

Stack Overflow用户
提问于 2016-01-21 16:33:36
回答 1查看 104关注 0票数 3

来自IO::路径的函数IO::路径是以正确的方式自动解码文件名,还是有可能设置编码?

在Perl5中,我主要遵循解码输入和编码输出的建议。

例如,在Perl5中,如果操作系统用于写入文件名的编码与控制台输出的编码不同,我将编写类似的内容。

代码语言:javascript
复制
use Encode::Locale;
use Encode qw(decode);
binmode STDOUT, ':encoding(console_out)';

my @files;
while ( my $file = readdir $dh ) {
    push @files, decode( 'locale_fs', $file );
}
for my $file ( @files ) {
     print "$file\n";
}

在Perl6,我不知道我应该做什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-25 20:36:12

Perl 6内部使用Unicode字符串(在基于图形位的表示中),编码发生在IO边界上。

对于控制台输出,可以通过$*OUT.encoding("...")手动设置编码。

对于目录清单,它取决于后端:对于JVM,它应该做正确的事情(或者像Java那样失败)。对于MoarVM,它将依赖于平台:在Win32上,使用Unicode (同样,这应该是正确的),而在其他平台上,使用假设UTF-8。从这个片段中可以看出,原则上使用不同编码的能力存在于最低层次,但它似乎没有以任何方式向用户公开.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34929228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档