|
|
发表于 2024-8-14 09:53:59
|
显示全部楼层
弄了个C程序试了下,猜测大概curl是个使用了CRT传递的命令行参数的非unicode程序(gnu gcc编译的?)
不使用chcp 65001情况下,执行curl时的参数会不做转换原样传递,因此list.txt编码为utf8时会正确传到curl中,curl会获得utf8编码的参数
使用chcp 65001情况下,执行curl时的参数会转换成ansi(gbk)编码,因此就算list.txt是utf8编码,也会被转换成gbk然后传进curl中,curl会获得ansi(gbk)编码的参数
> "down\%%a.jpg" 是cmd的重定向,如果list.txt编码为utf8,不使用chcp 65001的话,cmd会将utf8按照ansi(gbk)方式解读,结果当然就是乱码
所以,楼主可以试试下面的
list.txt保存为UTF-8(最好不要带bom)
不使用chcp 65001(避免参数被转成ansi/gbk)
不使用cmd的重定向输出到文件,使用curl的-o选项输出到文件(避免cmd将utf8按照ansi/gbk解读造成乱码) |
|