分类: PERL
2014-01-20 11:32:47
1.9.1 问题描述
有两个字符串,输出的时候看起来相同,但是在测试的时候他们确实不等的,甚至有时候测试时显示他们并不是相同的长度,如何让Perl按照相同字符串处理这些字符呢?
1.9.2 解决方案
如果有某种意义上的等值字符串,至少这些字符串中的一部分包含Unicode组合字符,对于这些字符串,我们不去直接比较他们,取而代之的是,用Unicode::Normalize 模块里边的NFD()函数,通过函数的输出结果来比较字符串:
use Unicode::Normalize;
$s1 = "fa\x{E7}ade";
$s2 = "fac\x{0327}ade";
if (NFD($s1) eq NFD($s2)) { print "Yup!\n" }