curl命令中处理中文

curl是linux平台下,通过url获取数据的命令行工具。可以访问http, https, ftp等等服务器。

curl https://xthread.cn

shell中会显示html的内容。

如果想在url的查询参数(query string)含有中文,则请求可能失败,比如:

curl "http://localhost?q=关键字"

此时,http服务器接收到的q并不是“关键字”,而是一堆乱码(/?q=ä½\xa0好)。
在http url中需要对unicode字符进行编码(有相应的规范)。
比如“关键字”编码为“%E5%85%B3%E9%94%AE%E5%AD%97”,正确的url如下:

curl "http://localhost?q=%E5%85%B3%E9%94%AE%E5%AD%97"

curl能不能帮我们自动进行转码呢?答案是可以的,如下:

curl -G "http://localhost" --data-urlencode=关键字

通过-G和--data-urlencode参数即可将查询参数自动编码,然后附加到url的查询参数中。

参考:
[1] curl official site

posted @ 2020-04-12 18:14  june.js  阅读(7623)  评论(0编辑  收藏  举报