Chinaunix首页 | 论坛 | 博客
  • 博客访问: 873841
  • 博文数量: 73
  • 博客积分: 7176
  • 博客等级: 少将
  • 技术积分: 2526
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-14 17:16
文章分类
文章存档

2012年(1)

2011年(9)

2010年(20)

2009年(28)

2008年(15)

分类: LINUX

2009-04-12 00:02:30


  S60系统上的Qreader有一种中文程序罕见的美德:支持UTF-8编码。 于是我经常下载一些人的文集之类,转换为txt文件,在手机上看。  久而久之,发现一个诀窍:

   使用Firefox插件DownloadThemAll!, 可以选择的下载一个页面中的所有链接,并且可以指定重命名规则。  例如
的汪曾祺文集,就可以指定为:
   
    *name*.*txt*.*ext

   这样,原来网站上的020.htm这个文件,到了我的磁盘上就变成了020.看水.htm,其中"看水"就是索引页面中对这个超链接的描述。

  下载之后,由于是gb2312编码的,我这样把它们批量转换为utf8编码、并dump出txt文件:

    $ ls *.htm |while read file; do base=`echo $file |awk -F"." '{ print $1"."$2 }'` && iconv -f gb2312 -t utf8 $file > tmpfile && sed -i 's/charset=gb2312/charset=utf8/g' tmpfile && w3m -dump -T text/html tmpfile > "$base.txt"; done

   我是shell菜鸟! 不过它的确工作:) 工作过程是:

    for each htm file:
       -> 取其剔除".htm"后缀的文件名
       -> iconv转换为utf8编码,并写入一个tmpfile
       -> 调用w3m从这个tmpfile里dump出txt来

   菜鸟琢磨出一点点技巧也是很开心的:)
  
阅读(1549) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-01-15 10:53:55

这位ted朋友,我shell真是一窍不通,全都是一句句问来的… 您说的这个python程序,是自己有库,还是依赖于libiconv? iconv这个遇错就退出的毛病,的确让人讨厌,而且还没法强迫他ignore错误。 回家试验一下你的程序,谢谢!

chinaunix网友2010-01-15 10:53:55

这位ted朋友,我shell真是一窍不通,全都是一句句问来的… 您说的这个python程序,是自己有库,还是依赖于libiconv? iconv这个遇错就退出的毛病,的确让人讨厌,而且还没法强迫他ignore错误。 回家试验一下你的程序,谢谢!

chinaunix网友2010-01-14 19:48:12

博主的shell很强悍, 不过用iconv经常会报错误, 如,iconv: 6337位置的非法输入序列 就会导致文件只转换一半, 可以用python来替代iconv。 #!/usr/bin/env python # vim: set fileencoding=utf-8: import sys fp1 = open(sys.argv[1], 'r') fp2 = open(sys.argv[2], 'w') fp2.write(fp1.read().decode('GB2312', 'ignore').encode('UTF-8', 'ignore'))

chinaunix网友2010-01-14 19:48:12

博主的shell很强悍, 不过用iconv经常会报错误, 如,iconv: 6337位置的非法输入序列 就会导致文件只转换一半, 可以用python来替代iconv。 #!/usr/bin/env python # vim: set fileencoding=utf-8: import sys fp1 = open(sys.argv[1], 'r') fp2 = open(sys.argv[2], 'w') fp2.write(fp1.read().decode('GB2312', 'ignore').encode('UTF-8', 'ignore'))

chinaunix网友2009-05-01 19:26:46

我是用一个电脑程序批量转换的