shell中使用curl时,数据为乱码的解决方法,以及一些参数的解释

在使用shell中的curl访问baidu时,返回值为乱码,可通过|iconv -fgb2312 -t utf-8方式解决:

eg :

curl -v -m 10 -6 https://www.baidu.com|iconv -t gb2312 -f utf-8 2>&1


1> -v 会打印出curl的整个的debug信息

2> -m 是设置timeout信息,这里设置的是10s

3> -6是指定通过baidu的ipv6地址访问

4> iconv的使用方式:

    1. -f 输入编码

     2. -t 输出编码

    3. -l 列出所有已知的编码

   4. -o 输出文件

5> 2>&1

对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0 表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出

发布了66 篇原创文章 · 获赞 34 · 访问量 20万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章