|
发表于 2006-4-10 22:54:04
|
显示全部楼层
perl我也不太熟悉,google + 一些电子书搞定了这个问题,楼主见笑了。
windows下使用的unicode编码为utf-16,或者是utf-16LE,具体不太清楚,不过使用utf-16可以工作的很好。
下面是我的代码:
- my $file1 = 'c:\2.txt';
- my $file2 = 'c:\3.txt';
- open (FILE1, "< :encoding(UTF-16)", $file1)||die ("can not open $file1\n");
- open (FILE2, ">$file2")||die ("can not open $file2\n");
- select(FILE2);
- while (<FILE1>)
- {
- if (/(^[a-z0-9]+)(.+)/) {
- my $hzs = $2;
- chop($hzs);
- my @hz = split(//, $hzs);
- for $i (0..$#hz) {
- use bytes;
- print($hz[$i], $1, "\n");
- no bytes;
- }
- }
- }
- close(FILE1);
- close(FILE2);
复制代码
输入格式为:
- daa1打咑
- faa1花華蘤化嘩錵
- gaa1家加嘉傢枷迦嘎噶伽袈鎵痂葭豭尕癿泇珈笳耞跏椵犌鴐茄猳麚瘕釓毠貑
复制代码
输出为:
- 打daa1
- 咑daa1
- 花faa1
- 華faa1
- 蘤faa1
- 化faa1
- 嘩faa1
- 錵faa1
- 家gaa1
- 加gaa1
- 嘉gaa1
复制代码 |
|