[解決済み] <a href...>のアンパサンドはエンコードするのか?
質問
HTMLを自動生成するコードを書いているのですが、正しくエンコードしてほしいのです。
次のようなURLへのリンクを生成しているとします。
http://www.google.com/search?rls=en&q=stack+overflow
私は、すべての属性値はHTMLエンコードされるべきであると仮定しています。(つまり、上記のURLをアンカータグに入れる場合、アンパサンドを次のようにエンコードする必要があります。
&
というように。
<a href="http://www.google.com/search?rls=en&q=stack+overflow">
ということでよろしいでしょうか?
解決方法は?
はい、そうです。HTMLエンティティはHTML属性の内部でパースされ、野良猫のような
&
は曖昧さを生みます。そのため、常に
&
ではなく、単に
&
内側
すべて
HTMLの属性です。
とは言っても
&
と引用しています。
必要
をエンコードする必要があります。のような特殊文字がある場合
é
をエンコードしなくても、HTML パーサーは満足します。
以前は、URLは非ASCII文字で特別な扱いが必要でした。
é
. これらはパーセントエスケープを使ってエンコードする必要があり、この場合、次のようになります。
%C3%A9
で定義されているためです。
RFC 1738
. しかし、RFC 1738 は、次のものに取って代わられました。
RFC3986
(URI, Uniform Resource Identifiers) と
RFC3987
(IRI, Internationalized Resource Identifiers)であり、その上で
WhatWGは、HTML5以降、非ASCII文字が含まれるURLを見たときにブラウザがどのように振る舞うべきかを定義する作業をベースにしています。
. したがって、パーセントエンコードであるかどうかにかかわらず、URLに非ASCII文字を含めても安全になりました。
関連
-
[解決済み] HTML IFステートメント
-
[解決済み] HTML 5: Is it <br>, <br/>, or <br />?
-
[解決済み] HTMLページからのリダイレクト
-
[解決済み] jQueryを使用してハイパーリンクのhref属性を変更する方法
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] インラインCSSでa:hoverを記述するには?
-
[解決済み] mailto:を使ってメールの件名や内容を設定することはできますか?
-
[解決済み] hr要素の色を変更する
-
[解決済み] HTMLのid属性とname属性の違い
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CSSでテキストを垂直方向にセンタリングするには?[重複しています]
-
[解決済み] リンクのように動作するHTMLボタンを作成する方法
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] <button> vs. <input type="button" />. Which to use?
-
[解決済み] divブロック内のテキストを(水平方向と垂直方向に)センタリングするにはどうすればよいですか?
-
[解決済み] クリアフィックスとは何ですか?
-
[解決済み] HTML5でfloat入力タイプはありますか?
-
[解決済み] input type="date "のフォーマットを変更する方法はありますか?
-
[解決済み] ラジオボタンをデフォルトで選択するには?[重複しています]
-
[解決済み] URLに含まれるユニコード文字