TomC建议在进入途中分解Unicode字符,并在出路时重新组合(http://www.perl.com/pub/2012/04/perl-unicode-cookbook-always-decompose-and-recompose.html).
前者对我来说很有意义,但我不明白为什么他建议在出路时重新组合.如果你的文字很重,有欧洲重音字符,你可能会节省少量空间,但你只是把它推到别人的分解功能上.
我还缺少其他明显的原因吗?
正如Ven'Tatsu在评论中写道,有一些软件可以处理组合字符但不能分解字符.虽然理论上反过来也是相反的,但我从未在实践中看到它,并期望它很少见.
为了只显示分解的字符,渲染软件需要处理组合变音符号.在字体中找到它们是不够的.渲染器需要使用有关基本字符尺寸的信息正确定位变音符号.这经常会出现问题,导致渲染效果不佳 - 特别是如果渲染使用不同字体的变音符号!结果几乎不会比通过简单地显示由印刷师设计的预先组合字符(如"é")的字形所实现的效果更好.
(渲染软件还可以分析情况并有效地将分解后的角色映射到预先组合的角色.但这需要额外的代码.)