トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-wiki/208

ページの作成や編集にはユーザ登録が必要です。

スペースを含むページ名のuri

  • 投稿者: いしだなおと
  • カテゴリ: 本体
  • 優先度: 緊急
  • 状態: 却下
  • 日時: 2004年09月01日 12時46分29秒

 内容

スペースを含むページ名の例?

このようなページのuriは、スペースを「%20」にエンコードすべきだと思うのですが、いかがでしょうか。現状では「+」に変換されます。

この件が発生するのを確認したバージョンは3.5.5および3.5.6です。

直書き

このようなリンクでGoogleに行くと+がスペースになってしまいます。ただしこれはリンクの書き方が悪い可能性があります。

FSWikiLite 0.0.9にも同様の現象があります。

 比較

uriが http://fswiki.org/wiki.pl?page=space+in+page+name の場合

  • 検索などでクエリ文字列にこのuriを渡した場合に、「http://fswiki.org/wiki.pl?page=space in page name」と解釈される。「」内はuriとして正しくない。
  • 多分、uriを直接渡すのがいけなくて、encode処理をすべきなのかというのが、上で書いた「リンクの書き方が悪い」の意味です。正しい文字で構成されたuriなのに、エンコードしなおす必要があるのか疑問に思いました。

uriが http://fswiki.org/wiki.pl?page=space%20in%20page%20name の場合

  • どこのロボットかわかりませんが、私のWikiサイトをクロールした結果、URLencodeを2重にしたuriが登録されてしまい、それをそのままWikiにリクエストを送ってこられて、意図したページに遷移しない(化けたページ名の新規作成画面になる)ケースが少なからずあります。
    • これはこの件の問題ではなく「日本語WikiName」の問題でしょうか。

 コメント

  • 仰っている意味(何が問題なのか)がよくわからないのですが、クエリ文字列において半角スペースを「+」に変換してはまずいのでしょうか?たとえばGoogleで「aa bb」と検索した場合のクエリ文字列を見ると「aa+bb」にエンコードされています。もちろん「%20」もデコードすればスペースになりますが…。 - たけぞう (2004年09月02日 15時04分20秒)
  • 従来通りのuriでも、それ自体には問題はないです。断定的な言い方になってしまったのは不適切でした。すみません。スペースを+にするより%20にしたほうが使い勝手がよくなると思った、というのが言いたいことの趣旨です。比較という段を追記しました。 - いしだなおと (2004年09月02日 17時31分07秒)
  • 横槍失礼します。 http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape ←このあたりを読むとわかりやすいかと思いますよ。 - 名無しさん (2004年09月02日 23時12分05秒)
  • 参考になります。また、CGIの仕様を見ました。+も%20もどちらも扱えなくてはいけないとわざわざ明記されています。それと、+は%20に対して省略したものだと位置づけているように読めました。どちらを選んでも間違いではないですよね。 - いしだなおと (2004年09月03日 02時19分41秒)
  • 確認してみると、%20であっても「直書き」に書いたようなリンクでは同じことが起こりました。どうしたらいいんだろう・・・。 - いしだなおと (2004年09月04日 00時32分50秒)
  • これはクエリ文字列としてURL自体を渡すのであれば、その文字列を(必要であれば)再度エンコードしなくてはいけないという話ではないでしょうか。上の例でいくと「+」→「%2B」に変換した文字列をクエリ文字列として渡せばよいのでは?FSWiki側の問題ではないようが気がするのですが… - たけぞう (2004年09月06日 09時08分59秒)
  • 例えば「related:http://yahoo.co.jp/」のGoogle検索結果のURLは http://www.google.co.jp/search?hl=ja&q=related%3Ahttp%3A%2F%2Fyahoo.co.jp%2F です。同様に、提示されたURLのrelated:の検索は http://www.google.co.jp/search?hl=ja&q=related%3Ahttp%3A%2F%2Ffswiki.org%2Fwiki.pl%3Fpage%3Dspace%2Bin%2Bpage%2Bname になります。たとえURLの形をしていても、これはクエリ文字列ですから「http://fswiki.org/wiki.pl?page=space+in+page+name」をURLエンコードする必要があります。 - MRZ (2006年07月29日 11時59分11秒)
  • 当件はFSWiki側の問題ではないと判断し、却下とさせていただきます。 - KG (2017年12月05日 22時34分53秒)
お名前: コメント:

最終更新時間:2017年12月05日 22時34分57秒