楼主:
josefy (醉落~最弱)
2014-09-28 10:44:19各位版大/高手您好
小弟最近在尝试使用perl 读取csv档案 (由服务器抓下来的)
把CSV打开后看到的东西是EX.
ABC DEFG HIJK
但是用perl读出后自元间会多出间隔
ex.['A B C D E F G H I J K']
若是用length去算长度, string 变成原来的两倍长
请问是为什么呢?
小弟应用上希望读出的结果与在csv上看到的一致 这样才能运用 感谢!
程式码:
pen FILE1, "<data1.txt" or die " Cannot open data";
$x=0;
while ($line= readline(FILE1)){
@data[$x]=$line;
$x=$x+1;
print @data[$x];
#print length($line),"\n";
}
close FILE1;
作者:
xatier (一切重来就好了...)
2014-09-28 10:45:00空格的长度有会一起算进去阿
楼主:
josefy (醉落~最弱)
2014-09-28 10:46:00您好, 但是在csv里面储存格中没有那些空格说Or2个人是有怀疑过编码问题, big5似乎一个四元要两个byte个人试过把data copy至笔记本后 在读出就没有问题但是为了工作效率, 希望可以不要手动复制到笔记本上
作者:
xatier (一切重来就好了...)
2014-09-28 11:31:00如果是编码问题的话,可以找一下 encoding 这个模组
作者:
flu (Crazy Rhythm)
2014-09-28 11:33:00把你的第四行以UTF-16编码存成纯文字档,再用us-ascii编码打开会见到类似的现象另外,a-zA-Z在big5编码内仍然是一个符号占1byte (8 octets)
楼主:
josefy (醉落~最弱)
2014-09-28 12:29:00请问F大, 这是big5造成的问题吗? 要怎么解决呢?
作者:
CindyLinz (Cindy Wang)
2014-09-28 13:38:00use Encode; $line=Encode::decode('big5', $line);不过你 @data[$x] 应该是要写成 $data[$x] 吧?然后..为什么读进$data[$x]以后,$x加1,印$data[$x+1] ?
楼主:
josefy (醉落~最弱)
2014-09-28 23:07:00感谢Cindy大, 小弟试试看!