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