[转] perl 半角 全角 转换

 
perl 半角 全角 转换
2010-05-18 10:33

# 全角字符第一字节 = 163(0xA3), 第二字节为对应半角字符 + 128
# 全角中文第一字节 > 163
my $str = ‘019AaBbYyZz\",.?<>{}[]*&^%#@!~()+-|:;';
print "$str\n";
$str =~ s/\x{A3}(.)/chr(ord($1) - 128)/eg;
print "$str\n";

### 运行结果 ###
019AaBbYyZz\",.?<>{}[]*&^%#@!~()+-|:;
019AaBbYyZz\",.?<>{}[]*&^%#@!~()+-|:;

#反之则半角转全角
$str =~ s/([0-9a-zA-Z])/chr(163).chr(ord($1)+128)/eg;
print "$str\n";

### 运行结果 ###
019AaBbYyZz\",.?<>{}[]*&^%#@!~()+-|:;

posted @ 2012-01-31 16:19  xiaodongrush  阅读(1809)  评论(2编辑  收藏  举报