0

以下のコードは外国語では機能しませんが、英語の単語では完全に機能します。

let int=1244764800
let start=86400+$int 
let l=86400*7
let end=$int-$l

for (( k = $start ; k > $end ; k=k-3600 )) do
for (( j = 1 ; j < 11 ; j++ )) do
let mintime=$k-3600;
let maxtime=$k
searchwords="سلام"

#echo $maxtime
curl "http://otter.topsy.com/search.json?q="${searchwords}"&page="$j"&perpage=100&mintime="${mintime}"&maxtime="${maxtime}"&apikey=FAF7F2D0D8A143978CB7762CE35FCF99"
done
done

これにより、次のようになります。

curl: (7) couldn't connect to host

curl: (7) couldn't connect to host

このスクリプトは英語の単語で完全に機能することを繰り返しますが、外国語の単語でこれを実行する必要があるので、助け/ガイダンスをいただければ幸いです。ありがとう :)

4

2 に答える 2

2

urlencode非ASCII文字が必要だと思います。curl --data-urlencodeだけでなく、を使用してみてくださいcurl

URL 文字列を先頭に追加するだけではうまくいかない場合は、パラメーターをデータに移動し (を読ん-dcurl)、引き続き使用します。--data-urlencode

これが実際の例です:

curl -G --data-urlencode "q=سلام" -d page=1 -d mitime=1244764800 -d maxtime=1245764800 -d apikey=FAF7F2D0D8A143978CB7762CE35FCF99 "http://otter.topsy.com/search.json"
于 2013-01-23T06:15:55.840 に答える
0

検索語の文字を URL エスケープする必要があります。

--data-urlencodecurl の引数を使用してみることができます。

このリンクには、perl または単純な bash を使用して bash でそれを行う方法に関する素晴らしい記事があります。

于 2013-01-23T06:19:32.397 に答える