免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3159 | 回复: 6
打印 上一主题 下一主题

关于excel和中文的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-20 13:54 |只看该作者 |倒序浏览
大家好,我想请问个问题,比如我有一个excel表格



如上图所示:
  1. use Spreadsheet::ParseExcel;
  2. use Encode;
  3. use strict;

  4. my $parser = Spreadsheet::ParseExcel->new();
  5. my $workbook = $parser->parse('ͳ¼Æ³É¼¨.xls');

  6. if (!defined $workbook )
  7. {
  8. die $parser->error(), ".\n";
  9. }

  10. for my $worksheet($workbook->worksheets())
  11. {
  12. my ($row_min,$row_max) = $worksheet->row_range();
  13. my ($col_min,$col_max) = $worksheet->col_range();
  14. for my $row($row_min..$row_max)
  15. {
  16.   for my $col($col_min..$col_max)
  17.   {
  18.    my $cell = $worksheet->get_cell($row,$col);
  19.    next unless $cell;
  20.    my $a = $cell->value();
  21.    $a = encode('gbk',decode('gbk',$a));
  22.    print $a."\n";
  23.   }
  24. }
  25. }
复制代码
图中第一行的都是中文,我需要怎么样解码输出print的时候不是乱码,还有我需要把这些中文作为键存储到hash中去,这样的话是不是也需要改变编码形式?我不太明白编码。。希望大家给点意见。谢谢

论坛徽章:
8
技术图书徽章
日期:2013-09-30 08:51:28技术图书徽章
日期:2013-12-11 09:26:39白羊座
日期:2013-12-27 15:27:13金牛座
日期:2014-01-06 09:13:05天蝎座
日期:2014-01-21 14:23:28酉鸡
日期:2014-05-09 16:51:12卯兔
日期:2014-08-11 16:49:1515-16赛季CBA联赛之八一
日期:2017-08-14 23:24:57
2 [报告]
发表于 2013-11-20 14:24 |只看该作者
本帖最后由 xiumu2280 于 2013-11-20 14:25 编辑

$a = encode('gbk',decode('gbk',$a));
变成 $a = decode('gbk',$a);试试看

论坛徽章:
0
3 [报告]
发表于 2013-11-20 15:08 |只看该作者
先谢谢你的回答,不过不知道什么原因改成那样好像一直会报一个错误如下图:


这个我问题我换了一个方法,好像是解决了,我先把字符串$a split了然后把每个元素都在encode成gbk的编码,就能正常输出了。。
回复 2# xiumu2280


   

论坛徽章:
0
4 [报告]
发表于 2013-11-20 15:39 |只看该作者
直接换成 $a = encode('gb2312',$a);就可以了

论坛徽章:
0
5 [报告]
发表于 2013-11-20 16:08 |只看该作者
谢谢,我试试回复 4# 张琦得得


   

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
6 [报告]
发表于 2013-11-20 16:52 |只看该作者
搜FLW的excel乱码终极解决方案{:3_183:}

论坛徽章:
0
7 [报告]
发表于 2013-11-20 16:54 |只看该作者
Thanks,我去看看回复 6# mcshell


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP