新生鳩丸掲示板♯

bakera.jp > 新生鳩丸掲示板♯ > スレッド内全記事表示 (記事 2616 からのスレッド)

スレッド内全記事表示 (記事 2616 からのスレッド)

[2616] URI の中の &

あんどう (2005年2月26日 15時21分)

はじめまして。

> URI の中でも、& を書くときは & としなければなりません。

という一文を発見したのですが、RFC-1738を読むと

"%26"と表記するべきではないかと思うのですが……。

如何でしょうか?

[2618] Re: URI の中の &

ばけら (2005年2月26日 17時21分)

>> URI の中でも、& を書くときは & としなければなりません。

>という一文を発見したのですが、RFC-1738を読むと

>"%26"と表記するべきではないかと思うのですが……。

 おそらく二つの誤解をされているのだろうと思います。

 まず、"&" は URL に使用できる文字です。& は reserved に含まれていますが、これは特別な意味を持つ文字だという意味であって、使えないという意味ではありません。

>the characters ";", "/", "?", ":", "@", "=" and "&" are the characters which may be reserved for special meaning within a scheme.

 と書かれているとおりです。その特別な意味通りに使用する場合は & をそのまま書かなくてはなりませんし、逆に意味を失わせる必要があれば %26 としなくてはなりません。常に %26 と書かれるわけでも、任意に %26 と書いて良いわけでもなく、使い分ける必要があるということです。

 また、これとは別に、& はHTML で特別な意味を持つ文字です。たとえば URL に > という文字列が含まれているような場合、それをそのまま

href 属性などに書くと、> は文字実態参照と解釈されて > に変換されてしまいます。従って、HTML の中で href 属性などに URL を記す必要がある場合、& をそのまま書くことはできず、& もしくは & などと書く必要があります。

 逆に、文字参照を解釈しない場所では & はそのまま & と書かなくてはなりません。XHTML でない HTML で style 要素の内部に URL を書くような場合は、& と書くとそれはそのまま & という文字列と解釈されてしまいますので、URL に & が含まれていてもそのまま書く必要があります。

[2619] Re: URI の中の &

えむけい (2005年2月26日 17時45分)

>>the characters ";", "/", "?", ":", "@", "=" and "&" are the characters which may be reserved for special meaning within a scheme.

ちなみに RFC 1738 は RFC 3986 で update されているので、現在 reserved な文字の種類に関しては RFC 3986 のほうを参照してください。大幅に変わっています。おそらく jar スキームで "!" が特別な意味を持っていたりすることへのご配慮なのでしょう。

[2620] Re: URI の中の &

えむけい (2005年2月26日 18時1分)

> それをそのまま

> href 属性などに書くと、

「そのまま」と「href」の間にある改行と1行空き【違】はなんですか【ピュア】。

> > は文字実態参照と解釈されて

文字実体参照?

[2622] Re: URI の中の &

ばけら (2005年2月27日 0時48分)

>> > は文字実態参照と解釈されて

>文字実体参照?

 ですねぇ。ATOK 2005 になったのが裏目に出た?

[2643] Re: URI の中の &

あんどう (2005年3月9日 16時52分)

なるほど了解しました。

データとしての"&"とURIの構文としての"&"の解釈の

違いと言うことで良いのでしょうか?

[2648] Re: URI の中の &

ばけら (2005年3月9日 21時8分)

>データとしての"&"とURIの構文としての"&"の解釈の

>違いと言うことで良いのでしょうか?

 そうですね。前者は %26 でしょうし、後者は & のままとなります。

 さらに、URL を HTML 中に (#PCDATA もしくは RCDATA としてパースされる場所に) 書く場合には、後者をそのまま & と書くのではなく、& などとする必要があります。

最近の日記

関わった本など