literals

リテラル (URI Template)

[1] URI雛形リテラル (literals) は、その文字自体を表します。

目次

  1. 仕様書
  2. 意味
  3. 構文
  4. 展開

仕様書#

意味#

[3] URI雛形以外の文字は、そのまま URI参照に複製されます >>2

[4] ただし URI参照で認められない文字は、 UTF-8符号化されてパーセント符号化されます >>2

構文#

[5] RFC 3987 IRI参照に含まれ得る符号位置が含まれるようです。 ただし %パーセント符号化としてのみ使うことができます。 >>2

U+0021U+0023U+0024U+0026U+0028..U+003BU+003DU+003F..U+005BU+005DU+005FU+0061..U+007AU+007Eucschariprivateパーセント符号化

展開#

[7] リテラルは、次のように展開します >>6

  1. [8] RFC 3986 unreserved, RFC 3986 reserved, パーセント符号化のいずれかなら、 そのまま複製します。
  2. [9] それ以外なら、 UTF-8符号化し、 パーセント符号化したものを返します。

[11] これによってパーセント符号化されないのは、 RFC 3986 URI でそのまま使える文字から、 % を除いたものです (>>10)。

[12] % は、元々パーセント符号化の一部として含まれていた時だけ、 そのまま複製されます。パーセント符号化を構成しない %URI雛形の構文上認められておらず、リテラルではないので、 誤りとなります。

展開参照。

[13] RFC 3986 URI参照で使えない文字パーセント符号化されますが、 使える文字パーセント符号化されません。ですから、 URI としては使えても特定の場面では使えない文字が含まれていても、 自動的にパーセント符号化されることは無いということです。

[15] Safari 9.0 ( 版) <https://developer.apple.com/library/safari/releasenotes/General/WhatsNewInSafari/Articles/Safari_9.html#//apple_ref/doc/uid/TP40014305-CH9-SW27>

The following ECMAScript 6 content is now supported by Safari:

Template Literals