免费注册 查看新帖 |

Chinaunix

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

perl 如何打印出中文 [复制链接]

论坛徽章:
3
2015亚冠之武里南联
日期:2015-07-29 12:14:352015年亚冠纪念徽章
日期:2015-08-12 14:28:272015亚冠之德黑兰石油
日期:2015-09-09 17:15:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-10 12:06 |只看该作者 |倒序浏览
my $dir = getcwd;
my $out_file=$dir."\/"."ALL.xls";
print "$out_file\t";
open(OUT,">$out_file");

for my $file(@files)
{   my $str ="哈哈";
        $str = Encode::decode_utf8($str);
        print OUT $str;
        print OUT encode("gb2312",decode("gb2312","疾病相关致病突变\n"));
        print OUT "\t染色体位置\t基因\t外显子\t转录本\t突变\t氨基酸变化\t基因型\t突变ID\tdbSNP\t人群中突变频率\t结果质量\t是否验证\t参考文献\t疾病名称\n";
}
上面用的方法
打印出来都是乱码,请问我该怎么写呢?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2015-08-10 12:37 |只看该作者
回复 1# 54red


    脚本本身和输出都用 UTF-8 编码应该就没问题了.

论坛徽章:
3
2015亚冠之武里南联
日期:2015-07-29 12:14:352015年亚冠纪念徽章
日期:2015-08-12 14:28:272015亚冠之德黑兰石油
日期:2015-09-09 17:15:52
3 [报告]
发表于 2015-08-12 11:38 |只看该作者


my $out_file=$dir."\/"."ALL.xls";编码是utf8,用ALL.txt接收结果就是正常的汉字,但是当我用ALL.xls就是乱码,我查了查,xls的编码好像是是gb2312,估计就是这个问题,现在还没找到办法回复 2# MMMIX


   

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2015-08-12 13:02 |只看该作者
回复 3# 54red


    用 iconv 做下转码是最简单的. 如果没办法转码, 那就用 PerlIO::encoding, 然后在 open 的时候指定编码.

论坛徽章:
7
巳蛇
日期:2013-11-28 09:22:59天秤座
日期:2014-10-25 15:40:452015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之德黑兰石油
日期:2015-07-15 08:46:452015亚冠之平阳省
日期:2015-11-08 16:27:53白银圣斗士
日期:2015-11-14 09:58:12
5 [报告]
发表于 2015-08-12 13:42 |只看该作者
回复 3# 54red


    可以试试模块来写EXCEl文档
  1. use Excel::Writer::XLSX;
  2. use Text::Iconv;
  3. use Encode;
复制代码

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2015-08-12 13:57 |只看该作者
回复 5# b114213903


    一直以为他是读取文本文件呢. Excel 按文本文件的方式读取的话, 不论它里面的文本内容是用的什么编码, 读出来的都只能是乱码.

论坛徽章:
3
2015亚冠之武里南联
日期:2015-07-29 12:14:352015年亚冠纪念徽章
日期:2015-08-12 14:28:272015亚冠之德黑兰石油
日期:2015-09-09 17:15:52
7 [报告]
发表于 2015-08-12 14:28 |只看该作者
谢谢,这种方法肯定可行的,就是用那个模块写起来好麻烦啊!回复 5# b114213903


   

论坛徽章:
3
2015亚冠之武里南联
日期:2015-07-29 12:14:352015年亚冠纪念徽章
日期:2015-08-12 14:28:272015亚冠之德黑兰石油
日期:2015-09-09 17:15:52
8 [报告]
发表于 2015-08-12 14:30 |只看该作者
我是打算读txt,utf8编码的,然后写成xls,然后发现xls是乱码回复 6# MMMIX


   

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
9 [报告]
发表于 2015-08-12 14:33 |只看该作者
回复 8# 54red


    关键是, 你写对了么? Execl 可不是说你把文件后缀弄成 .xls 然后随便往里面写什么都可以, 它是有自己的格式的.

论坛徽章:
3
2015亚冠之武里南联
日期:2015-07-29 12:14:352015年亚冠纪念徽章
日期:2015-08-12 14:28:272015亚冠之德黑兰石油
日期:2015-09-09 17:15:52
10 [报告]
发表于 2015-08-12 15:21 |只看该作者
我知道用个模块是可以写成excle的格式,我上面的那个程序应该是不对的,就是强迫改了后缀,不过要是英文的,好像和xls也没区别!以前都是凑合用了!回复 9# MMMIX


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP