Wget下载(中文)文件名乱码
· 技术积累 · wget

wget下载文件,文件名称有中文,下载后是乱码,加参数解决

# --restrict-file-names=OS 限定文件名中的字符为系统允许的字符

    更改在生成本地文件名期间必须转义远程 URL 中的哪些字符。受此选项限制的字符是
    已转义,即替换为 %HH,其中 HH 是对应于受限字符的十六进制数。此选项也可用于强制所有
    字母大小写为小写或大写。

    默认情况下,Wget 会转义操作系统文件名中无效或不安全的字符,以及不安全的控制字符。
    通常不可打印。此选项对于更改这些默认值很有用,可能是因为您正在下载到非本机分区,或者因为您想要
    禁用控制字符的转义,或者您想进一步将字符限制为仅在 ASCII 值范围内的字符。

    这些模式是一组以逗号分隔的文本值。可接受的值为 unix、windows、nocontrol、ascii、小写和大写。值 unix 和
    窗口是互斥的(一个将覆盖另一个),小写和大写也是如此。最后那些是特殊情况,因为它们不会改变
    将被转义的字符,而是强制将本地文件路径转换为小写或大写。

    当指定“unix”时,Wget 转义字符 / 和 0--31 和 128--159 范围内的控制字符。这是类 Unix 上的默认设置
    操作系统。

    当给出 "windows" 时,Wget 转义字符 \、|、/、:、?、"、*、<、>,以及 0--31 和 128--159 范围内的控制字符。除了
    为此,Windows 模式下的 Wget 使用 + 而不是 : 来分隔本地文件名中的主机和端口,并使用 @ 而不是 ?将查询部分分开
    其余的文件名。因此,在 Unix 模式下将保存为 www.xemacs.org:4300/search.pl?input=blah 的 URL 将保存为
    Windows 模式下的 www.xemacs.org+4300/search.pl@input=blah。此模式是 Windows 上的默认模式。

    如果您指定 nocontrol,那么控制字符的转义也会被关闭。当您下载 URL 时,此选项可能有意义
    名称包含 UTF-8 字符,在可以用 UTF-8 保存和显示文件名的系统上(UTF-8 字节序列中使用的一些可能的字节值落在
    Wget 指定为“控件”的值范围)。

    ascii 模式用于指定值超出 ASCII 字符范围(即大于 127)的任何字节都应进行转义。这个
    在保存编码与本地使用的编码不匹配的文件名时很有用

解决乱码:

# 下载
wget --restrict-file-names=nocontrol  http://www.xxx.com/xxx中文.jpg

本文最后更新时间 2023-05-14
文章链接地址:
https://wojc.cn/archives/1302.html
本站文章除注明[转载|引用],均为本站原创内容,转载前请注明出处

ChatGPT注册 - 人工智能对话语言模型

Frp免费开源的 内网穿透代理工具

我要留言