例如,我想下载一篇题为《数学归纳法的发展历程》的论文,下载工具是Chrome,但是下载下来的文件会变成Êýѧ¹éÄÉ·¨µÄ·¢Õ¹Àú³Ì_·ë½ø.pdf
目前已经想出一种方法:先压缩成zip文件,然后设定LANG=C用7z解压,解压后再转换编码
zip a.zip *
LANG=C 7z x a.zip
convmv -f gbk -t utf8 --notest -r .
压缩再解压这种方法无疑过于繁琐,而且文件数量多的话肯定不合适,毕竟这应该是一个只涉及到重命名文件的问题,不知各位V友有什么简便的方法。
本人知识背景:非程序员,希望能够用Shell或者Python解决这个问题
非常感谢!
|  |      1xinhugo      2015-03-28 17:41:40 +08:00 | 
|  |      2limbo0      2015-03-28 18:21:28 +08:00 许多论文没有pdf! 许多pdf里面都是乱码! | 
|  |      4muzuiget      2015-03-28 18:28:48 +08:00  6 这种烂网站几乎都是坚守 GBK 编码的,我老早前就喷过了,还写了个 Firefox 扩展 http://qixinglu.com/post/redisposition.html 至于本地的乱码文件名呢(解压一些 zip 经常遇到),自己撸了个 Python 脚本解决。 https://github.com/muzuiget/python-scripts/blob/master/utf8-filename.py $ ls Êýѧ¹éÄÉ·¨µÄ·¢Õ¹Àú³Ì_·ë½ø.pdf $ utf8-filename * 数学归纳法的发展历程_冯进.pdf | 
|  |      5Goooogle      2015-03-28 18:33:54 +08:00  2 | 
|  |      6lusyoe      2015-03-28 19:16:46 +08:00 via Android 如果用的是Ubuntu可以下一个nautilus扩展解决这个问题,nautilus-filename-repairer | 
|  |      9hitsmaxft      2015-03-28 19:25:55 +08:00 via iPhone alas convmv=convmvfunc(){mv $1 "$(echo $1|iconv -f gbk)" } 大概这样,手机上不好验证 | 
|  |      10s51431980      2015-03-28 19:26:27 +08:00 试试 convmv ``` sudo apt-get install convmv man convmv ``` | 
|  |      12RecursiveG      2015-03-28 20:16:22 +08:00  1 echo -n 'Êýѧ¹éÄÉ·¨µÄ·¢Õ¹Àú³Ì_·ë½ø.pdf' | iconv -f utf8 -t iso-8859-1 | iconv -f gbk -t utf8 | 
|  |      13ynyounuo      2015-03-28 20:33:29 +08:00 @RecursiveG  正想说可以用 iconv | 
|      14kongdeyuan      2015-03-29 01:53:27 +08:00 解决的办法 确实很多学习了,感谢。我这条回复属于垃圾信息吗。。。 | 
|      15xieyudi1990      2015-03-29 08:36:24 +08:00 via iPhone 每次在Linux下用tar打包文件名带中文的文件时, 发给用gbk的中文Windows的人解压也是各种问题. | 
|  |      16hitsmaxft      2015-03-29 10:27:25 +08:00  1 @hitsmaxft 最后来个完整版本 ``` convmv(){ mv "$1" $(echo -n "$1" | iconv -f UTF-8 -t ISO-8859-1 | iconv -f gbk)} ``` ``` convmv 'Êýѧ¹éÄÉ·¨µÄ·¢Õ¹Àú³Ì_·ë½ø.pdf' ``` | 
|  |      17vjnjc      2015-03-29 23:41:36 +08:00 enca -L zh_CN -x UTF-8 file1 试试这个,我一直用它来搞定gbk乱码的 | 
|  |      18yanwen      2016-07-02 15:21:10 +08:00 | 
|      19wangzilinn      2018-11-22 21:40:05 +08:00 |