我想知道为什么大多数使用Perl构建的现代解决方案在默认情况下不启用utf - 8。
我知道核心Perl脚本有许多遗留问题,可能会破坏一些东西。但是,从我的角度来看,在21圣世纪,大型新项目(或具有大视角的项目)应该从头开始使他们的软件实现UTF-8证明。但我还是不认为会发生这种情况。例如,驼鹿启用严格和警告,但Unicode不启用。现代:Perl也减少了样板文件,但没有UTF-8处理。
为什么?在2011年的现代Perl项目中,是否有一些避免使用UTF-8的理由?
评论@tchrist太长了,所以我把它加在这里。
看来我没有说清楚。让我试着补充一些东西。
tchrist和我看到的情况非常相似,但我们的结论完全相反。我同意,Unicode的情况是复杂的,但这就是为什么我们(Perl用户和编码员)需要一些层(或pragma),使UTF-8的处理像现在一样简单。
tchrist指出了很多方面,我会阅读并思考几天甚至几周。不过,这不是我的重点。tchrist试图证明“启用UTF-8”的方法不止一种。我没有那么多的知识与之争论。所以,我坚持用活生生的例子。
我玩了Rakudo和UTF-8只是在那里在我需要的时候。我没有遇到任何问题,一切都很顺利。也许有一些更深层次的限制,但在开始时,我所测试的所有工作都符合我的预期。
这难道不应该成为现代perl 5的一个目标吗?我要强调一点:我并不是建议将UTF-8作为核心Perl的默认字符集,我建议开发新项目的人可以使用啪的一声来触发它。
又是一个例子,但是语气比较消极。框架应该使开发更容易。几年前,我尝试过web框架,但因为“启用UTF-8”太晦涩难懂而放弃了它们。我不知道如何以及在哪里挂钩Unicode支持。这太费时了,所以我发现走老路更容易。现在我看到这里有一个赏金来处理相同的问题梅森 2: 如何使Mason2 UTF-8干净?< / >。因此,它是一个相当新的框架,但是在UTF-8中使用它需要深入了解其内部结构。这就像一个巨大的红色标志:停止,不要利用我!
我真的很喜欢Perl。但是处理Unicode是痛苦的。我仍然发现自己在撞墙。在某种程度上tchrist是正确的,并回答了我的问题:新项目不吸引UTF-8,因为它在Perl 5中太复杂了。