• ベストアンサー

URL上にある「%」の文字の置き換えについて

「~」(チルダ)を %7E で置き換えられるように 「&」を何らかの文字列に変換できればと思っています。 たとえば http://hogehoge/hanya-n&ahaha.html みたいなURLがあるといたします。 UNIX の wget で HTML を定時取得するスクリプトを動かしているのですが、& の文字が含まれるために、URL ではなく、バックグラウンドへジョブをまわすコマンドとして扱われてしまい、hanya-n というファイルを取りにいって 404 Not found になってしまう状態に陥っています。 この状況を回避するために、& の意味になる別の文字列があるようであればご教示いただければ幸いです。そんなもんはない、あきらめろというのでもかまいません。諦めがつきますので。 なお、以下の回避策もありますが、心苦しさと技術力のなさのために困難であり、& の文字の置き換えを望んでおります。 o URL に & を使わないでくれと作成者に依頼すること o wget "URL" みたいにして " でくくってコマンドを実行すること よろしくお願いいたします。

  • HTML
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 0KG00
  • ベストアンサー率36% (334/913)
回答No.1

%26かな。

参考URL:
http://www.tagindex.com/tool/url.html
chidori_ko
質問者

お礼

そのものずばりのご回答と、エンコード・デコードサービスのご紹介ありがとうございました。助かりました。

その他の回答 (2)

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.3

基本的に & はCGI等へ渡すパラメータの区切りに用いられるので、ファイル名に使用するのは好ましくないですね。 例:http://www.sample.com/index.cgi?id=xxxx&pw=xxxx & の意味を持たせたいとのことですが、作者もしくは管理者がわかればいいのですから、#2さんのようにアンダーバー(_)でつなげてしまうのはひとつの手ですね。 もしくは & ではなくて and と書くか。 hanya-n_and_ahaha.html そもそも hanya-n (はにゃ~ん)という文字をわざわざリアルにファイル名で表現する必要もなく、hanyan_ahaha.html でもいいかと思います。 むしろその方がわかりやすくなるかと思いますが。 参考まで。

chidori_ko
質問者

お礼

コメントありがとうございます。 質問の仕方がまずかったのですが、私がコンテンツを作成するのではなく、私は誰かの作ったコンテンツを参照するのみで、しかも誰かさんは & を使ったファイル名を使っているという状況を打開する方法をお尋ねしておりました。ファイル名を変えてくれとお願いしても対応してくださるとは限らず、しかもそもそも誰が作っているかもわからないものなので宛先もわからず..。調べればわかるかもしれませんが、連絡先の確認と理解を求めるコミュニケーションには労力を裂きたくもなく..。 ご教示いただいた内容は、私がコンテンツつくりに回ったときには生かすようにいたします。ありがとうございました。

  • 3o-clock
  • ベストアンサー率33% (233/689)
回答No.2

&は%26だけど hanya-n-ahaha.html とか hanya-n_ahaha.html こうのほうが、ありだと思うけど。 http://www.manekineko.ne.jp/support/HP/

chidori_ko
質問者

お礼

コメントありがとうございます。%26ですね。助かりました。 私の質問の仕方がまずかったのですが、私がコンテンツを作成しているのではなく、接点のない誰かが作っているコンテンツを定時チェックするためにいわゆる「アンテナ」を作る過程での疑問をお尋ねしていました。そのコンテンツを作っている誰かが、ファイル名に & を含むものを使っているので...。 もしそのサイト管理人/コンテンツ作成者に対応の依頼などを行うような状況になったときには、ご紹介いただいたファイル名のつけ方などのURLを紹介したいと思います。 コメントどうもありがとうございました。

関連するQ&A

  • IP自動更新スクリプトがうまく動作しません

    環境 FreeBSD9 IP自動更新スクリプトを作成したのですが、うまく動作しません。メールでwget not foundが10分間隔で送られてきます。 wgetコマンドが見つからないと言ってるようです。/usr/local/bin/にwgetコマンドがあります。 また、コマンドラインでもwgetを使用してダウンロードできます。 vi /usr/local/bin/ddo.sh に以下のスクリプトを作成して、実行権限を与えました。 #!/bin/sh wget -O - "http://free.ddo.jp/dnsupdate.php?dn=hogehoge&pw=hogehoge1234" >> /var/log/result.log コマンドプロンプトでddo.shを実行すると、正常にIP更新がされログにその更新内容が記載されます。 スクリプトをcrontab -eに登録しました。 */10 * * * * /usr/local/bin/ddo.sh 10分間隔で実行はされるのですが、wget not found がメールに届き、ログに更新内容の記載がありません。 何がいけないのでしょうか? よろしくお願いします。

  • PHPで<a>タグ内からURLと文字を抜き出したい

    PHP4.3で $html_tag = '<a href="http://www.hogehoge.com/hogehoge/hoge/sample.html" class="hogehoge" title="hogehoge">りんく先名称</a>'; というような変数から 「http://www.hogehoge.com/hogehoge/hoge/sample.html」 のURLと 「りんく先名称」という<a>で囲まれた文字列を抜き出したいのです。 preg_matchを使っていろいろやってみたのですが、どうもうまくいきません。というか、正規表現がどのように書いていいのかわからないのですが・・・ そもそもpreg_matchを使わずとも簡単な方法があるのでしょうか? 大変恐れ入りますが、ご教授いただけませんでしょうか?

    • ベストアンサー
    • PHP
  • 文字列の一致について

    URLのデータベースがあるとします。 例えば http://hogehoge.com/aaaa/ http://hogehoge.com/aaa/ http://hogehoge.com/bbb/ http://hogehoge.com/ccc/ URLにある文字列が含まれていたら、○○を表示すると言う処理をしたいと思っています。 例えばURLに「aaa」の文字列を含まれている時、「あああ」を表示しようとすると、最初に登録されている「http://hogehoge.com/aaaa/」に該当してしまいます。 「aaa」であれば、http://hogehoge.com/aaa/に該当して、「あああ」を表示させるようにできないでしょうか? 要するにURLに「aaa」が含まれていたら、「http://hogehoge.com/aaaa/」ではなく、「http://hogehoge.com/aaa/」に該当して、「あああ」を表示させる。 今は $url =~ /aaa/ のように「=~」を使用しています。 $url =~ /\/aaa\// のようにするしかないでしょうか。 アドバイスを御願いします。

    • ベストアンサー
    • Perl
  • wget コマンドについて

    wget コマンドについて バッチファイルにおいてrpmをwgetしたあとにビルドする作業を行いたいのですが、 どうやら実行ログを見る限りwgetが終わる前にビルドが実行され、結果file not foundとなっているようです。 これを回避してwgetが終了するまでちゃんと待つ方法はありますか? お願いします。

  • Perlの文字列置換について

    とあるソースで $hogehoge =~ s!<文字列>! do{ $hoge =qq(hogehoge);} !egiox; $_ = $hoge; というのを見たのですが $hogehoge =~ s/<文字列>/hogehoeg/egiox;とは何が違うのでしょうか? また修飾子gとoではどちらが評価されるのでしょうか?または二つとも評価されるのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 連番で出力したい

    以下のような感じで、url.txtに書いてあるURLを落として連番で保存したいんですが、やり方がわかりません(wgetに限らずほかのコマンドも連番したいときがよくあります)。 環境はcygwinです。シェルの種類は何でも結構です。どなたか教えてください! cat url.txt | xargs wget -o output■連番■.html

  • PHPで動的に生成されるCSVをサーバーに保存

    業務処理を自動化するためにPHPで動的に生成されるCSVファイルを、WEBサーバーに保存したいと思っています。 wgetコマンドを使って保存しようと思っていますが、リンクにGETパラメータ?(http://hogehoge.com/hoge.php?hoge=1&hoge=2)が設定されているためかcsvが生成さずPHPページ(hoge.php)が保存されてしまいます。 実行したwgetコマンド /usr/local/bin/wget /home/useraccount/www/hoghog/hog.csv 'http://hogehoge.com/hoge.php?hoge=1&hoge=2' -O - また、phpファイルを生成し、 <?php $file = 'http://hogehoge.com/hoge.php?hoge=1&hoge=2'; $newfile = 'test.csv'; if (!copy($file, $newfile)) { echo "failed to copy $file...\n"; } ?> と上記のようにやっても同じ結果でした。 ブラウザ上のURLバーでhttp://hogehoge.com/hoge.php?hoge=1&hoge=2とするとCSVファイルの保存画面が出てくるページなのですが、何か良い方法はありませんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 一度に、文字を検索したい。

    エクセル2007です。「検索と置き換え」の“検索する文字列”で、たとえば、”機械”  ”エンジ” ” 部品”  ”P-1” の4つの文字の言葉を一個づつ検索しています。そこで、”機械”  ”エンジ” ” 部品”  ”P-1” の4つの文字を何かのコマンドで区切り、一度に検索で来るよう方法はございませんか!?  宜しくお願いします。          

  • 【DOSコマンド】一致した文字列の次の単語を出力

    コマンドの実行結果の標準出力をリダイレクトしてテキストファイルに書き出しました。 このファイルを検索し、マッチした文字列の次の単語を出力したいのですが、 標準のDOSコマンド(あるいはコマンドラインで動作するフリーソフトを使用するのでも構いません)で実現するにはどうすれば良いでしょうか? テキストファイルの内容例 hogehoge: abcdefg この場合、abcdefgを出力したいです。 hogehogeは大文字小文字入り交じっています。

  • UNIXコマンドwgetについての質問です

    UNIXコマンドのwgetを用いてGoogleの検索結果ページを取得したいのですが、エラーが返ってきてしまいます。 打ち込んだコマンドは「wget 取得したいURL」という形式です。 他の一般的なWebページは問題なく取得することができました。 Googleの検索結果ページを取得する際には何か他にオプションなどが必要なのでしょうか。 解決策わかる方、ご回答よろしくお願いします。

専門家に質問してみよう