Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26941
  • 博文数量: 13
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-05 16:13
文章分类
文章存档

2016年(1)

2014年(12)

我的朋友

分类: 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" }

阅读(628) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~