【问题标题】:Can you write Perl 6 scripts using an encoding that is not utf8?你能用不是 utf8 的编码来编写 Perl 6 脚本吗?
【发布时间】:2018-11-06 01:39:51
【问题描述】:

Perl 5 有 encoding pragmaFilter::Encoding 模块,但是,我在 Perl 6 中没有发现任何类似的东西。我想最终会创建源过滤器,但目前,你能在Perl 6 脚本?

【问题讨论】:

  • 我注意到@ikegami 删除了perl 标签。我做了一些研究,想把它保存在评论中。 1. StackOverflow 社区有一个明确的共识,即标签的主要目的是吸引回答者的注意力。 2. The only answer to the Meta SO question Should “equivalent feature” questions include two language tags? 是认为应该只使用一个标签的观点。缺乏公认的标记以及该 meta SO 答案上的 cmets 表明它可能并不明确,但也没有竞争答案。
  • @ralph,Perl5 程序员无能为力。
  • @ikegami 实际上,鉴于编码杂注已过时,并移至 Filter::Encoding 之类的非核心模块,可能会有一些关于为什么会发生以及为什么实际上没有发生的建议一个好主意。 FWIW,这就是为什么我在发现链接的材料有点混乱时包含标签的原因,回复:如果我的第一句话是真的。
  • @jjmerelo,这是因为编码实际上并没有解码脚本,而是在解析字符串文字后解码它们。是的,这听起来很奇怪。与问题无关。 如果您想了解详细信息。
  • @jjmerelo Aiui 是否标记perl 归结为判断电话。我链接的 meta.SO Q+A 提供了一些薄弱的指导以及一些类似的指导。我对该指南的阅读是不要添加perl 标签,除非在极少数情况下有人绝对必须深入了解 P5 功能。更重要的是,一个长期确立的 SO 共识是标签主要是为了帮助回答者,而不是提问者或搜索者,所以对标签的最终判断是由像 ikegami 这样的人正确做出的。总而言之,一切似乎都按照它应该发生的那样发生了。 :)

标签: encoding raku


【解决方案1】:

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

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

【讨论】:

  • UTF-8 作为通用标准是相当乐观的想法。
  • @matthiaskrull 不是通用的,因为没有人会拥有或遇到除 ascii/utf8 之外的其他编码的源文件。但是,如果他们想将其用作代码,那么将其转换为 utf8 更为明智,后者可以编码任何 Unicode 文本,并且没有实际的缺点(afaik;你知道吗?),而不是采用任何其他方法在几乎任何可以想象的场景中使用它。因此,这就是几乎所有开发人员都会做的事情。因此,从这个意义上说,“基本上是普遍的”。我错过了什么吗?
【解决方案2】:

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

所以操作上的答案是:目前没有。

(而且我认为还没有其他人要求它......)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2012-10-20
    • 1970-01-01
    相关资源
    最近更新 更多