免费注册 查看新帖 |

Chinaunix

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

请问用那个模块能把UTF8的文本转换为GBK的文本? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-15 13:33 |只看该作者 |倒序浏览
{:3_200:}
最好给个现成的例子,我看了learning perl没找到。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2010-09-15 13:41 |只看该作者
这种问题首先应该想到 cook book

论坛徽章:
0
3 [报告]
发表于 2010-09-15 13:48 |只看该作者
最好给个现成的例子,我看了learning perl没找到。
julynada 发表于 2010-09-15 13:33



    use Encode就可以。

论坛徽章:
2
白羊座
日期:2013-10-29 13:29:222015亚冠之全北现代
日期:2015-10-25 08:13:02
4 [报告]
发表于 2010-09-16 12:09 |只看该作者
本帖最后由 miniqq 于 2010-09-16 12:10 编辑

有个叫 piconv 的脚本,爱怎么转怎么转!

piconv系 iconv的perl版本。比iconv好用

打开piconv你就知道怎么用那些模块了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2010-09-16 13:23 |只看该作者
回复 1# julynada
  1. use Encode qw/from_to/;
  2. from_to($val,'utf8','GB2312');
复制代码

论坛徽章:
0
6 [报告]
发表于 2010-09-18 16:09 |只看该作者
回复  julynada
py 发表于 2010-09-16 13:23



    我还有一个问题,如何判断文本文件的编码?如果已经是GBK就不转了。{:3_204:}

论坛徽章:
0
7 [报告]
发表于 2010-09-18 17:17 |只看该作者
回复 5# py
RE

论坛徽章:
0
8 [报告]
发表于 2010-09-18 17:49 |只看该作者
回复 6# julynada


    這個問題之前有帖子討論過,

Encode::Guess

论坛徽章:
0
9 [报告]
发表于 2010-09-20 23:45 |只看该作者
  1. #!/usr/bin/perl -w
  2. # SCRIPT: u2g.pl
  3. # AUTHOR: Julynada
  4. # DATE: 2010/09/20
  5. # REV: 1.0
  6. # For Study
  7. #
  8. # PURPOSE:
  9. # 将UTF8编码的文本文件转换为GBK编码的文本文件 utf8 to gbk

  10. use Encode;
  11. use Encode::Guess;

  12. if ( @ARGV < 2 ) {
  13.     die "Usage: u2g.pl source_file target_file\n";
  14. }

  15. open my $in,  "<", $ARGV[0] or die;
  16. open my $out, ">", $ARGV[1] or die;
  17. my $enc;
  18. while (<$in>) {
  19.     $enc = guess_encoding( $_, qw/utf8/ );
  20.     if ( !ref($enc) ) {
  21.         close $out;
  22.         unlink $ARGV[1];
  23.         die "Can't guess: $enc";
  24.     }
  25.     Encode::from_to( $_, "utf8", "gbk", 1 );
  26.     print $out $_;
  27. }
复制代码
写出来了,请各位看看有没问题。

论坛徽章:
0
10 [报告]
发表于 2010-09-21 09:22 |只看该作者
perl -MEncode -pi -E '\''$_=encode("gbk",decode("utf-8",$_));'\'' filename
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP