ページの作成や編集にはユーザ登録が必要です。
記入されたアドレス中にある、パラメタ区切りの & が 実体参照になっていない
- 投稿者: 名無しさん
- カテゴリ: 本体
- 優先度: 普通
- 状態: 却下
- 日時: 2007年04月13日 04時55分30秒
内容
SandBoxの編集
のようにリンクを作成すると & が実体参照にならずそのまま出力されるようです。
コメント
- SandBoxの編集と書けばいいのではないでしょうか。勝手に変換されても困ってしまうと思うのですが…。 - たけぞう (2007年04月14日 00時23分46秒)
- 一応、 CGI のパラメータ区切りであるアンパサンドは実体参照で書くべきとされているようです。また、そもそも HTML 上では実体参照を使用しないで書いた アンパサンドは化ける可能性があるので好ましくないんだと思います。ただし、場合よっては別(不測)の問題が起こる可能性もありますね。 - Custom (2007年04月14日 02時57分56秒)
- すみません。初歩的な質問で申し訳ありませんが、分かる方、どなたかお付き合いください。実体参照を含めて書かれたURIを本来のURIに変換しているのは誰ですか?(例:「<a href="uso.cgi?foo=1&bar=2">」→「<a href="uso.cgi?foo=1&bar=2">」)個人的にはブラウザの仕事だと思うのですが…。もしそうだとすると、ブラウザで直接URIを指定してそのページを表示しようとすると、どちらでも動作するはずですよね? ですが以前、Yahooの電話帳だか天気予報だか何だかで、実体参照を含めたURIではエラーがでて表示できなかった記憶があります。今見るとどれもOKってぽいんですが、以前とは年数も経ってますし、使ってるOSもブラウザのバージョンも異なるので何が原因だったか特定することができません。私はそういった理由があって、あえて実体参照には書き換えていないのだと思ってました。ちなみに、拙作の装飾用HTMLタグプラグインでは、以前はそのままでしたが現在は実体参照に置き換えられるところは置き換えるようにしています。 - あき (2007年04月14日 10時59分58秒)
- 上記コメントでたけぞうさんは、次のように書けばいいとおっしゃってるんですよね(このページのソースを見ないと分からないから分かりづらいのですが)。 - ぐうます (2007年04月14日 15時15分44秒)
[SandBoxの編集|./wiki.cgi?action=EDIT&page=SandBox]と書けばいいのではないでしょうか。
- すなわち、「出力される html としては実体参照で記述されるべき。でも Wiki システムは自動では変換しないので、Wiki ページを書く人が & を & に変換して記述してね」という立場だと思います。で、これは、『「&」は「&」と書くべき』という html の知識を Wiki ページ記述者に要求していますよね。とすると、「html を知らなくても Web ページが作れる」という Wiki のウリを弱めてしまうような気がします。 - ぐうます (2007年04月14日 15時23分29秒)
- そこで、Wiki ソース上でリンクの記述をするときの状況をあらためて考えてみますと、自分が訪れた Web ページの URI をブラウザのアドレス欄からコピー & ペーストする場合や、URL として紹介されている文字列からコピーしてくる場合がほとんどだと思います。すなわち、コピー元は html 上の記述というわけではないので、ペーストした文字列に含まれる & は純粋に & であるということです。これを前提にすると、Wiki システムが Wiki → html 変換時に勝手に & を & に書き換えてしまっても問題なかったりしませんかね? 以上のことから、できれば自動で変換されるように FSWiki が仕様変更されるとうれしいです。- ぐうます (2007年04月14日 15時31分44秒)
- 投稿したものです。 ブラケットの有無は影響なくソースに記入されたアドレスに含まれる & はすべて未変換で出力されていると修正させていただきます。 一例ですが、ブラウザによって(Firefoxの場合)はアドレスをコピー(右クリックから)しても&がコピーされる事がなく(&としてクリップボードに格納される)、ソースからではなく出力結果のたらい回しをした場合
http://127.0.0.1/wiki.cgi?foo=bar&amp=amp ソース記入 http://127.0.0.1/wiki.cgi?foo=bar&amp=amp Wikiによるパースの結果 http://127.0.0.1/wiki.cgi?foo=bar&=amp ブラウザでクリップボードにコピー http://127.0.0.1/wiki.cgi?foo=bar&=amp 別ページのソースに記入 http://127.0.0.1/wiki.cgi?foo=bar&=amp Wikiによるパースの結果 http://127.0.0.1/wiki.cgi?foo=bar&=amp ブラウザでクリップボードにコピー
という事も考えられます(試すと実際なりました)。 - 名無しさん (2007年04月14日 19時45分20秒)
- これに関しては URL と認識できる文字列内に & だけだった場合は & に変換し、 & と記述されていたらそのままにするようにできませんでしょうかね。 - Custom (2007年04月14日 22時25分48秒)
- Custom さんのご提案は、& と書いても & と書いてもどちらでも html 出力は & になるようにする、ということですよね。私もこれに賛成です。ただし、同じことを実現するとしても、一度全部の & を & に変換したあと、& を全て & に書き変える方が処理的には簡単かもしれませんね。 - ぐうます (2007年04月14日 22時31分18秒)
- 微妙な問題です。http://example.com/?name=hoge"=nullはhttp://example.com/?name=hoge&quot=nullと解釈すべきかも知れませんが、http://example.com/?name="hoge"はhttp://example.com/?name=&quot;hoge&quot;とは解釈して欲しくないと思います。「"」は%22でしょといわれればそうですが、それをいえば&じゃなくて&とすれば良いともいえます。 - typer (2007年07月08日 23時40分02秒)
- 考慮すべき点は、互換性の問題、&はURLに頻出し特別な意味を持つ事、現状のfswikiでURL以外では&は&と出力されるという事、の三点でしょうか。後の2つが&を&とすべき理由にはなりますが、互換性を考えれば今まで通りにすべきかもしれません。 - typer (2007年07月08日 23時48分57秒)
最終更新時間:2007年11月16日 15時29分06秒