[转] perl 半角 全角 转换

原文网址:http://hi.baidu.com/rdzwx/blog/item/6b52c9c4bdf70c179d163d81.html

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\",.?<>{}[]*&^%#@!~()+-|:;