perl里汉字的编码问题

perl里汉字的编码问题

我在做一个简单的汉字对齐工具
用的utf8的编码,每个汉字的长度是3
但是只要用二个空格显示起来就可以偏移一个汉字
能不能在不改变编码的情况下解决这个问题

另外模式匹配里的替换用法中,替换的模式用{count}这种样子怎么不行
比如$a=~ s/^/1{2}/g;
这样只能在$a前面加个1{2}为什么不能是11?
谢谢
1. 显示长度和字体有关.
2. 替换的后面部分, 默认是普通模式, s///e使用扩展替换模式
  但是是没有正则的方式的. 你可以s/^/1 x 2/e; 来给行首加'11'