您尚未登录。

#1 2017-05-24 21:34:00

xanthuiop
会员
注册时间: 2017-05-24
帖子: 15

[已解决]用浏览器下载的中文文件,文件名乱码

请求的协议是http协议
archlinux下我用浏览器下载的中文文件名乱码。
不管是chrome还是firefox
乱码的文件名基本是这样的

»ùÓÚDockerµÄ¿ÉÐÅÈÝÆ÷.pdf

我也不清楚这是什么编码的。到看下载的url好像是gb编码。
不清楚有人遇到过没?
有什么办法解决么?

最近编辑记录 xanthuiop (2017-06-02 12:06:38)

离线

#2 2017-05-24 22:21:41

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: [已解决]用浏览器下载的中文文件,文件名乱码

for i in ./*.pdf; do mv "$i" $(echo "$i" | iconv -f gbk -t utf8); done

这样?如果你的那个目录下只有一个 pdf 的话……

离线

#3 2017-05-24 22:23:29

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: [已解决]用浏览器下载的中文文件,文件名乱码

不过好像 fx 下载下来的文件就不是 gbk 编码了……如果遇到这样的情况我会用 aria2c 下载然后再用上面的方法,或者下载的时候就重命名好。

离线

#4 2017-05-24 23:05:23

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: [已解决]用浏览器下载的中文文件,文件名乱码

>>> xsel | iconv -t latin1 | iconv -f gbk
基于Docker的可信容器.pdf
>>> which mvgb
mvgb () {
        for i in $*
        do
                new="`echo $i|iconv -f utf8 -t latin1|iconv -f gbk`"
                echo $new
                echo -n 'Sure? '
                read -q ans && mv -i $i $new
                echo
        done
}

离线

#5 2017-05-25 15:36:07

xanthuiop
会员
注册时间: 2017-05-24
帖子: 15

Re: [已解决]用浏览器下载的中文文件,文件名乱码

依云 说:
>>> xsel | iconv -t latin1 | iconv -f gbk
基于Docker的可信容器.pdf
>>> which mvgb
mvgb () {
        for i in $*
        do
                new="`echo $i|iconv -f utf8 -t latin1|iconv -f gbk`"
                echo $new
                echo -n 'Sure? '
                read -q ans && mv -i $i $new
                echo
        done
}

谢谢!,这样可以解决。但我不是很懂它的意思。
就第一段命令看。
你是将剪切板里的字符串直接转换成latin1编码格式?
然后再将其输入编码gbk格式??
第二个管道符后面的不是很懂....?

离线

#6 2017-05-25 15:51:48

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: [已解决]用浏览器下载的中文文件,文件名乱码

这是个 zsh 函数,你用 zsh 的话可以直接用。
就是把文件名从被当作 latin1 的 gbk 编码转成 utf-8 编码而已。

离线

#7 2017-05-25 16:48:58

alexxey
会员
注册时间: 2016-12-28
帖子: 73

Re: [已解决]用浏览器下载的中文文件,文件名乱码

我改了一下,放在bash 下用

confirm() {
    read -r -p "${1:-Are you sure? [y/N]} " response
    case "$response" in
        [yY][eE][sS]|[yY]) 
            true
            ;;
        *)
            false
            ;;
    esac
}

mvgb () {
        for i in $*
        do
                new="`echo $i | iconv -f utf8 -t latin1 | iconv -f gbk`"
                echo $new
                confirm && mv -i $i $new
                echo
        done
}

离线

#8 2017-05-26 15:48:42

hounh
会员
注册时间: 2015-03-15
帖子: 47

Re: [已解决]用浏览器下载的中文文件,文件名乱码

firefox有个插件,可以对付这个。名字是redisposition,
网址是 https://github.com/muzuiget/redisposition

离线

#9 2017-05-26 16:04:02

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,384
个人网站

Re: [已解决]用浏览器下载的中文文件,文件名乱码

我看成了 redis position……

离线

#10 2017-06-02 12:02:16

xanthuiop
会员
注册时间: 2017-05-24
帖子: 15

Re: [已解决]用浏览器下载的中文文件,文件名乱码

hounh 说:

firefox有个插件,可以对付这个。名字是redisposition,
网址是 https://github.com/muzuiget/redisposition


我的firefox用flash看视频没声音,flash播放MP3就有声音,所以我一直没用firefox
不知道这插件chrome里有类似的吗?
非常感谢插件很管用

离线

页脚