我想知道为什么大多数使用Perl构建的现代解决方案默认都不启用UTF-8。
我知道核心Perl脚本有很多遗留问题,可能会破坏事情。但是,从我的角度来看,在21 日的世纪,新的大项目(或具有大的方面讲项目)应该从头开始他们的软件UTF-8的证明。我仍然看不到它的发生。例如,Moose启用严格和警告,但不启用Unicode。Modern :: Perl也减少了样板,但没有UTF-8处理。
为什么?有什么理由在2011年的现代Perl项目中避免使用UTF-8?
评论@tchrist的时间太长,因此我在这里添加它。
看来我没有说清楚。让我尝试添加一些内容。
我和tchrist看到的情况非常相似,但我们的结论完全相反。我同意,Unicode的情况很复杂,但这就是为什么我们(Perl用户和编码人员)需要一些层(或杂注)的原因,这使得UTF-8处理如今必须像现在一样容易。
tchrist指出了要涵盖的许多方面,我将在几天甚至几周内阅读并考虑它们。不过,这不是我的意思。tchrist试图证明“启用UTF-8”没有唯一的方法。我没有太多知识可以与之争论。因此,我坚持使用实例。
我和Rakudo一起玩,UTF-8就在我需要的时候出现。我没有任何问题,它只是工作。也许在某个更深层次的地方存在一些限制,但是一开始,我测试的所有内容都按预期工作。
那不是现代Perl 5的目标吗?我更强调的是:我不建议UTF-8作为Perl核心默认字符集,我建议触发它的可能性与一个单元为那些谁开发新的项目。
另一个示例,但带有更负面的语气。框架应该使开发更容易。几年前,我尝试了Web框架,但是只是因为“启用UTF-8”太模糊而把它们扔掉了。我没有找到如何以及在何处钩住Unicode支持。这太耗时了,我发现走旧路更容易。现在,我看到这里有悬赏计划来处理与Mason 2 相同的问题:如何使Mason2 UTF-8干净?。因此,这是一个非常新的框架,但是将其与UTF-8一起使用需要深入了解其内部。就像一个大红色标志:停止,不要使用我!
我真的很喜欢Perl。但是处理Unicode是很痛苦的。我仍然发现自己撞墙了。tchrist用某种方式正确并回答了我的问题:新项目不会吸引UTF-8,因为它在Perl 5中太复杂了。