私はGoogleのアドワーズ広告主導のマーケティングキャンペーンを通じて明らかになった問題に遭遇しました。使用される標準パラメータの1つは「リージョン」です。ユーザーがスポンサーリンクを検索してクリックすると、Googleはクリックを追跡するための長いURLを生成し、リファラーに大量の情報を送信します。これを記録のためにキャプチャしましたが、「Region」パラメータが正しく処理されていないことに気付きました。どうあるべきか
http://ravercats.com/meow?foo=bar®ion=catnip
代わりに次のように通過します:
http://ravercats.com/meow?foo=bar®ion=catnip
これがすべてのブラウザで発生することを確認しました。HTMLエンティティの構文は次のように定義されていると私は理解しています。
&VALUE;
ここで、先頭の境界はアンパサンドで、終了の境界はセミコロンです。簡単そうです。問題は、これが®エンティティに対して尊重されておらず、システム全体にあらゆる種類の大混乱を引き起こしていることです。
なぜこれが起こっているのか誰かが知っていますか?DTDのバグですか?(私は現在のHTML DTDを探して、それを理解できるかどうかを確認しています)これを実現するためにブラウザー間で共通することを理解しようとしているので、DTDを探しています。
これがあなたが使える証拠です。このコードを取得し、それからHTMLファイルを作成して、ブラウザーでレンダリングします。
<html>
<a href="http://foo.com/bar?foo=bar®ion=US®ister=lowpass®_test=fail&trademark=correct">http://foo.com/bar?foo=bar®ion=US®ister=lowpass®_test=fail&trademark=correct</a>
</html>
編集:URL全体をエスケープする必要があることを示唆しているすべての人にとって、上記のURLの例はまさにその例です。実際のURLはGoogleから直接取得されており、その構成方法を制御することはできません。これらの提案は有効ですが、「なぜこれが起こっているのか」という質問には答えません。