Encoding 可以使用非utf8编码编写Perl 6脚本吗?

Encoding 可以使用非utf8编码编写Perl 6脚本吗?,encoding,raku,Encoding,Raku,Perl5具有或模块,但是,我在Perl6中没有发现任何类似的东西。我想最终会创建源代码过滤器,但目前,您可以在Perl 6脚本中使用其他编码吗?Rakudo目前支持--encoding=选项,因此理论上您可以使用不同的字符编码编写脚本,并使用perl6--encoding=utf16 yourscript.p6调用它。但是在我的实验中,除了utf8之外,我还没能让它工作,即使它工作了,在命令行上指定--encoding对我来说也是一个很大的障碍 因此,操作上的答案是:目前没有 (我认为还没有其

Perl5具有或模块,但是,我在Perl6中没有发现任何类似的东西。我想最终会创建源代码过滤器,但目前,您可以在Perl 6脚本中使用其他编码吗?

Rakudo目前支持
--encoding=
选项,因此理论上您可以使用不同的字符编码编写脚本,并使用
perl6--encoding=utf16 yourscript.p6
调用它。但是在我的实验中,除了
utf8
之外,我还没能让它工作,即使它工作了,在命令行上指定
--encoding
对我来说也是一个很大的障碍

因此,操作上的答案是:目前没有


(我认为还没有其他人要求过它……)

除了utf8之外,您不能用任何东西编写Perl 6脚本。我不认为会有任何其他编码,你将被允许写你的脚本,因为utf8基本上是通用标准。诸如没有endianess和与ASCII向后兼容等好处是它成为标准的一些原因,而不是像utf16或utf32这样的东西


也许以前有一段时间这样的事情可能有用,但今天我不认为是这样。据我所知,所有常用的文本编辑器都默认为utf8,并且具有多种格式的文件使得与其他人共享Perl 6程序变得更加困难。有很多理由希望使用Perl 6之外的其他编码(写入文件、读取文件等)但我不认为添加过滤器是明智之举。

UTF-8作为通用标准是一种相当乐观的想法。@matthiaskrull不是通用的,因为除了ascii/utf8之外,没有人会拥有或遇到其他编码的源文件。但如果他们想将其作为代码使用,那么将其转换为utf8就更明智了,utf8可以对任何Unicode文本进行编码,并且没有实际的缺点(好吧,你知道吗?),而不是在几乎任何可能的场景中采用任何其他方法使用它。因此,几乎所有开发人员都会这样做。所以,从这个意义上说,“基本上是普遍的”。我遗漏了什么吗?我注意到@ikegami删除了
perl
标记。我做了一些研究,想把它保存在这里的评论中。1.社区一致认为,标签的主要目的是吸引回答者的注意。2.认为只应使用一个标签。缺少公认的分数和对meta-SO答案的评论表明,答案可能不明确,但也没有相互竞争的答案。@ralph,Perl5程序员无法提供任何帮助。@ikegami事实上,考虑到编码杂注已经过时,并移到了非核心模块,如Filter::encoding,关于为什么会发生这种情况以及为什么这不是一个好主意,可能会有一些建议。FWIW,这就是为什么当我发现链接的材料有点混乱时,我加入了标记,re:如果我的第一句话是真的。@Jjmerlo,这是因为编码实际上并没有解码脚本,而是在解析字符串文字后解码它们。是的,听起来很不靠谱。与这个问题无关。如果您需要详细信息,@jjmerlo Aiui标记
perl
与否归结为一个判断调用。meta提供了一些很弱的指导,所以我链接了Q+A和一些类似的。我对该指南的理解是不要添加
perl
标记,除非在极少数情况下,有人必须深入了解P5特性。更重要的是,一个长期以来形成的共识是,标签主要是为了帮助回答者,而不是提问者或搜索者,因此关于标签的最终判断是由池上这样的人做出的。总的来说,一切似乎都按预期发生了。:)