下記URLの動作に違いはありますか?.
&
が挿入されている理由がわかりませんが、違いはありますか?
www.testurl.com/test?param1=test&current=true
versus
www.testurl.com/test?param1=test¤t=true
&
は「文字参照の開始」のHTMLです。
&
は "An ampersand"の文字参照です。
¤t;
は標準の文字参照ではないのでエラーです(ブラウザはエラー回復を試みるかもしれませんが、これに頼るべきではありません)。
実際の文字に文字参照(例:™
)を使用した場合は、必要な文字列ではなくそれがURLに表示されます。
(使用するHTMLのバージョンによっては、;
で文字参照を終了する必要があるかもしれません。そのため、&trade=
は™として扱われます。HTML4では、次の文字がWord以外の場合は省略することができます。文字(=
など)が、これには問題があるブラウザ(Hello Internet Explorer)もあります。
HTMLは&を認識しませんが、&
を認識します。
私は誰かが作ったこの記事を見ました: http://www.webmasterworld.com/forum21/8851.htm
私の情報源: http://htmlhelp.com/tools/validator/problems.html#amp
アンパサンド( "&")を含むURLを含めると、別の一般的なエラーが発生します。
これは無効です。
a href = "foo.cgi?chapter = 1&section = 2&copy = 3&lang = en"
説明:
"&"
は実体参照を始めると想定されているため、この例では "unknown entity section"のエラーが発生します。ブラウザはこの種のエラーから安全に回復することがよくありますが、場合によっては実際の問題が発生します。この例では、多くのブラウザが&copy = 3を©= 3に正しく変換するため、リンクが失敗する可能性があります。 ⟨は左向き山括弧のHTMLエンティティであるため、ブラウザによっては&lang = enも<= enに変換されます。そしてある古いブラウザでもエンティティ§を見つけ、&section = 2を§ion= 2に変換します。
だからここでの目標はあなたがあなたのウェブサイトを検証しようとしているときに問題を回避することです。そのため、マークアップにURLを書くときは、アンパサンドを&
に置き換える必要があります。
&
を&
に置き換えることに注意してください。 HTMLでURLを書くときにだけ行われます。ここで"&"
は特殊文字です( "<"と ">"と共に)。プレーンテキストの電子メールメッセージまたはブラウザのロケーションバーに同じURLを書くときは、"&"
ではなく"&"
を使用します。 HTMLでは、ブラウザは"&"
を"&"
に変換するので、Webサーバーは要求のクエリ文字列に"&"
ではなく"&"
のみを表示します。
お役に立てれば : )
素晴らしい例です。 ¤t
が解析されるときテキストノードにそれは¤t
に変換されます。 属性値にと解析された場合、¤t
として解析されます。
テキストノードに¤t
が必要な場合は、マークアップに&current
を書く必要があります。
厄介な詳細はここにあります: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference