分享一次文件名乱码处理

系统字体配置、中文显示和输入法问题
回复
头像
duguyipiao
帖子: 158
注册时间: 2011-09-13 10:31

分享一次文件名乱码处理

#1

帖子 duguyipiao » 2016-01-04 20:28

Linux下在一个网站上下载一个pdf,结果文件名乱码。尝试了一下

代码: 全选

convmv -f gbk -t utf8 *.pdf
结果显示文件名已经是uft8编码,尝试--nosmart参数仍得不到正确的文件名。

回想起下载页面的文字也为乱码,分析html,发现其使用charset=windows-1252,但html的实际编码为gbk,几经辗转,终于发现乱码导致的原因如下:

网页本身使用gbk,确声称自己使用windows-1252,Linux下载时文件名被从windows-1252编码转换成Linux的默认编码utf8。解决办法就是,把文件名进行uft8 -> windows-1252,得到原来的gbk编码,再进行gbk -> uft8 得到utf8编码的正确的文件名。命令如下:

代码: 全选

convmv -f utf8 -t windows-1252 --notest
convmv -f gbk -t utf8 --notest
P.S. 文件是从中国知网下载的pdf,网页不是一直乱码,只在某些提示的页面乱码。
回复