为什么现代Perl默认避免UTF-8?
我想知道为什么大多数使用Perl构建的现代解决方案没有启用乌特夫-8默认情况下。
我知道核心Perl脚本存在许多遗留问题,在那里它可能会破坏一些东西。但是,在我看来,在21世纪圣世纪,大的新项目(或大视角的项目)应该从零开始证明他们的软件UTF-8。不过,我不认为会发生这种事。例如,驼鹿启用严格和警告,但不启用Unicode. 现代:Perl减少样板也,但没有UTF-8处理。
为什么?在2011年的现代Perl项目中,有什么理由避免使用UTF-8吗?
注释@tchrister太长了,所以我在这里添加它。
我好像没说清楚。让我试着补充一些东西。
克里斯特我也看到了类似的情况,但我们的结论完全相反。我同意,Unicode的情况很复杂,但这就是为什么我们(Perl用户和编码器)需要一些层(或语用),这使得UTF-8的处理像现在一样简单。
克里斯特指出要涵盖的许多方面,我将阅读和思考它们几天甚至几周。不过,这不是我的意思。克里斯特试图证明没有单一的方式“使UTF-8”。我没有那么多的知识来反驳这一点。所以,我坚持活生生的例子。
我到处玩拉库多而UTF-8就在那里如我所需..我没有任何问题,只是起作用了。也许在更深的地方有一些限制,但在开始的时候,我测试的一切都如我所期望的那样工作。
难道这不是现代Perl 5的一个目标吗?我强调这一点:我不是建议将utf-8作为核心perl的默认字符集,而是建议触发它的可能性。一声不响对于那些发展起来的人新的项目。
另一个例子,但带有更消极的语气。框架应该使开发更加容易。几年前,我尝试过Web框架,但因为“启用UTF-8”太晦涩,我就放弃了它们。我没有找到如何和在哪里挂钩Unicode支持。太费时了,我觉得走老路更容易。现在我看到这里有一个赏金来处理同样的问题梅森 2: 如何使Mason 2 UTF-8清洁?..因此,它是一个非常新的框架,但是将它与UTF-8一起使用需要深入了解它的内部结构。就像一个巨大的红牌:站住,不要利用我!
我真的很喜欢Perl。但是处理Unicode是痛苦的。我仍然发现自己是靠墙跑的。某种方式克里斯特是正确的,并回答了我的问题:新项目不吸引UTF-8,因为它在Perl 5中太复杂了。