次のPerlコードは、URLを開かない:システムコールでPerlが%by 23を置き換えるのはなぜですか?予想通り
http://www.google.com/%23source=hp&q=中文
代わりの
http://www.google.com/#source=hp&q=中文
私はシステムを交換する場合:
$word="中文";
my $url="http://www.google.com/#source=hp&q=" . $word;
print $url . "\n";
system("open \"$url\"");
をそれはGoogleがURLを使ってChrome開きます電話:
system("echo \"$url\"");
Google ChromeのURLフィールドに貼り付けたときに動作する正しいURL http://www.google.com/#source=hp&q=中文
を印刷します。
これはなぜですか?それを修正するには?
[編集8月14日、20:30CDT]
問題がopen
であるようです。なし
open "http://www.google.com/#source=hp&q=中文"
open 'http://www.google.com/#source=hp&q=中文'
open http://www.google.com/#source=hp&q=中文
作品です。彼らはすべて#
を%23
に置き換えました。私は、クエリに代わり "中文" の、すなわち使用を "中" 1つの文字を入れた場合興味深いことに、私は私は、Mac OS Xを使用してい
open "http://www.google.com/#source=hp&q=中"
open 'http://www.google.com/#source=hp&q=中'
仕事ではなく
open http://www.google.com/#source=hp&q=中
の両方を発見しました10.6。
システムコールで二重引用符の代わりに一重引用符を使用しようとしましたか?同様に: 'system(" open '$ url' ");' – thelsdj
'が機能しませんでした。 –
シェルから直接 'open'コマンドを実行しようとしましたか?問題はperではなく、openやchromeがコマンドラインからのURLをどのように処理するかで問題になる可能性があります。 – thelsdj