<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子メール</anchor>および派生プロトコルの構文要素 <dfn><code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-string</anchor></code></dfn>
は、<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&quot;</anchor></code> で括られた文字列です。</p><section><h1>quoted-string の仕様</h1><section><h1>RFC 724 (電子メイル)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <code>quoted-string</code> を規定した最初のメイル規格です。
基本的には現在の電子メイル仕様と同じなのですが、
<code>quoted-pair</code> が無い代わりに <code class="ABNF">&lt;&quot;&quot;&gt;</code> で 
<code class="ABNF">&lt;&quot;&gt;</code> を表現しました。</p><p>この規格は廃止されて既に随分経っていて、この形式のメッセージはみたことがありません。
(但し RFC 724 の <code>quoted-string</code> の形式と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Micro$oft</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VisualBasic</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列型</anchor>の表記法は同じです。
おそらく偶然だとは思いますが。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <pre> &lt;quoted-string&gt;   ::=   &lt;double quote mark (&quot;), decimal 34&gt;
                         &lt;a sequence of one or more TELNET
                          ASCII characters, where two
                          adjacent quotes are treated as a
                          single quote and part of the
                          string&gt; &lt;&quot;&gt;</pre></p><p><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> で書き直すと、こうです。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> quoted-string = &lt;&quot;&gt; qcontent &lt;&quot;&gt;</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> qcontent = qtext / quotes</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> qtext = 1*(%x00-09 / %x0B-0C / %x0E-21 / %x23-7F)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> quotes = &lt;&quot;&quot;&gt;</li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal> では &lt;&quot;&gt; の出現が禁じられていませんが、常識的に考えてそんなもんは出てきてはいかんでしょう。 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal> では ASCII なんでもありのように読めるけど、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;24</anchor-internal>
を読むと <code>CRLF</code> が認められていないことがわかる。 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal>)
(単独の <code>LF</code> は認められているんだろうか?)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <strong><ins>II.B.1.C.</ins>3) Quoted strings</strong></p><blockquote><p>Where  permitted  (i.e.,  in  structured  fields)   quoted
strings  are  treated as a single symbol (i.e.  equivalent
to an &lt;atom&gt; syntactically).  However, if  quoted  strings
are  to  be  &quot;folded&quot; onto multiple lines, then the syntax
for folding must be  adhered  to  (See  items  II.B.1.a.1,
above,  and  II.B.1.c.6,  below.)  Note  that the official
semantics do not  encounter  &lt;crlf&gt;s  in  quoted  strings,
although  particular  parsing  programs  may  wish to note
their presence.</p><p><ins>認められているところ (つまり構造化欄の中) では引用符で囲まれた文字列を単一の記号 (つまり構文的に &lt;atom&gt; と等しいもの) として取り扱います。しかし、引用符で囲まれた文字列が複数行に「折畳まれ」ている時は、折畳みの構文に従わなければいけません。なお、公式な意味では引用符で囲まれた文字列中に &lt;crlf&gt; は現れません。解析プログラムでこの出現に注意したいと思うのがあるかもしれませんが。</ins></p></blockquote><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> BS が最初に来てはいけません。 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;12</anchor-internal> と同じ)
<form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></li></ul></section><section><h1>RFC 733 (電子メイル)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> RFC 733 の規定はほぼそのまま RFC 822
に受け継がれました。詳しくは RFC 822 の節 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;14</anchor-internal>) と RFC 733
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="urn:ietf:rfc:733">urn:ietf:rfc:733</anchor-external> をご覧下さい。</p><pre> quoted-string = &lt;&quot;&gt; *(qtext/quoted-pair) &lt;&quot;&gt;; Any number of qtext
                                             ;   chars or any
                                             ;   quoted char.
 qtext       =  &lt;any CHAR excepting &lt;&quot;&gt;      ; =&gt; may be folded
                 and CR, and including
                 linear-white-space&gt;
 quoted-pair =  &quot;\&quot; CHAR</pre><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <code class="ABNF">qtext</code> で <code class="ABNF">&quot;\&quot;</code>
が除外されていないので、これでは <code class="ABNF">quoted-pair</code>
の構文解析が出来なくなってしまいますが、 RFC 822
で修正されています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;14</anchor-internal>) し、単なる不具合と考えて良いでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> RFC 724 の方法 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;16</anchor-internal>) とは互換性がありません。</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>RFC 822 (電子メイル)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end><pre> quoted-string = &lt;&quot;&gt; *(qtext/quoted-pair) &lt;&quot;&gt;; Regular qtext or
                                             ;   quoted chars.
                 <ins>; 普通の qtext か引用符で囲んだ文字</ins>
 qtext       =  &lt;any CHAR excepting &lt;&quot;&gt;,     ; =&gt; may be folded
                 &quot;\&quot; &amp; CR, and including
                 linear-white-space&gt;
                 <ins>&lt;任意の CHAR。但し &lt;&quot;&gt;, &quot;\&quot;, CR を除き、</ins>
                  <ins>linear-white-space を含む&gt;</ins>
                 <ins>; ⇒折畳んでも良い。</ins>
 CHAR        =  &lt;any ASCII character&gt;        ; (  0-177,  0.-127.)
 quoted-pair =  &quot;\&quot; CHAR                     ; may quote any char
                 <ins>; 任意の文字を quote 可能</ins></pre></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <code class="ABNF">quoted-string</code> 中に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">comment</anchor> はつかえません。 (3.4.3)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 両側の &lt;&quot;&gt; と <code class="ABNF">quoted-char</code> の &quot;\&quot; は <code class="ABNF">quoted-string</code> のデータの一部ではありません。 (3.4.4)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">制御文字</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BS</anchor> が <code class="ABNF">quoted-string</code> の初めに来てはいけません。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <code class="ABNF">phrase</code> 中では、前後に隣接する <code class="ABNF">word</code>
との間に <code class="ABNF">SPACE</code> が1つあると仮定します。
(実際の <code class="ABNF">LWSP-char</code> の数によらず <code class="ABNF">1SPACE</code>
とします。)</p><p>複数の <code class="ABNF">LWSP-char</code> を入れたいときは &lt;&quot;&gt;
の内側に入れます。 (3.4.4)</p><p>例えば、 <samp>atom1 (SP) &quot;quoted-string&quot; (SP) (TAB) atom2</samp>
は <em>atom1 (SP) quoted-string (SP) atom2</em> と解釈され、
<samp>atom1 (SP) &quot; (TAB) quoted-string&quot; (TAB) (TAB) atom2</samp>
は <em>atom1 (SP) (TAB) quoted-string (SP) atom2</em> と解釈されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end></p><blockquote><p><strong>3.4.5.  QUOTED-STRINGS <ins>引用符で囲まれた文字列</ins></strong></p><p>Where permitted (i.e., in words in structured fields)  
quoted-strings  are  treated  as a single symbol.  That is, a 
quoted-string is equivalent to an atom, syntactically.  If a  
quoted-string  is to be &quot;folded&quot; onto multiple lines, then the syntax
for folding must be adhered to.  (See the &quot;Lexical Analysis of
Messages&quot;  section  on &quot;Folding Long Header Fields&quot; above, and
the section on &quot;Case  Independence&quot;  below.)   Therefore,  the
official  semantics  do  not  &quot;see&quot; any bare CRLFs that are in
quoted-strings; however particular parsing programs  may  wish
to  note  their presence.  For such programs, it would be 
reasonable to interpret a &quot;CRLF LWSP-char&quot; as being a CRLF  which
is  part  of the quoted-string; i.e., the CRLF is kept and the
LWSP-char is discarded.  Quoted CRLFs (i.e., a backslash  
followed  by  a CR followed by a LF) are also subject to rules of
folding, but the presence of the quoting character (backslash)
explicitly  indicates  that  the  CRLF  is  data to the quoted
string.  Stripping off the first following LWSP-char  is  also
appropriate when parsing quoted CRLFs.</p></blockquote><p>認められているところ (例えば構造化欄の <code class="ABNF">word</code> 中)
では <code class="ABNF">quoted-string</code> は単一の記号として扱われます。
つまり、構文的には 1つの <code class="ABNF">quoted-string</code> は
1つの <code class="ABNF">atom</code> に相当します。 <code class="ABNF">quoted-string</code>
が複数行に「折畳まれ」る場合、折畳みの構文を守らないといけません。
(上の「メッセージの字句解析」節の「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">長い頭欄の折畳み</anchor>」と下の
「大文字・小文字不区別性」を参照。) 従って、公式な意味では生の
<code class="ABNF">CRLF</code> を <code class="ABNF">quoted-string</code> 
中で見ることはありません。
しかし解析プログラムにはこの出現に注意したいと願うのもあるかもしれません。
そうしたプログラムでは、「<code class="ABNF">CRLF</code> <code class="ABNF">LWSP-char</code>」
を <code class="ABNF">quoted-string</code> の一部である <code class="ABNF">CRLF</code>
と解釈するのが良いでしょう。従って <code class="ABNF">CRLF</code>
は残して <code class="ABNF">LWSP-char</code> は捨てます。 Quote
された <code class="ABNF">CRLF</code> (つまり逆斜線に CR と LF
が続くもの。) も折畳みの規則の対象ですが、 quote 文字
(逆斜線) の存在が <code class="ABNF">CRLF</code> が <code class="ABNF">quoted-string</code>
のデータの一部であることを明示しています。 Quote
された <code class="ABNF">CRLF</code> を解析する時には最初に続く
<code class="ABNF">LWSP-char</code> を読み飛ばすのも適切でしょう。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal> の後半部分の解釈:</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> (a) 「qtext CRLF LWSP-char qtext」は「qtext LWSP-char qtext」と解釈する。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> (b) 「qtext CRLF LWSP-char qtext」は「qtext CRLF qtext」と解釈しても良い。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> (A) 「qtext &quot;\&quot; CRLF LWSP-char qtext」は「qtext CRLF LWSP-char qtext」と解釈する。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> (B) 「qtext &quot;\&quot; CRLF LWSP-char qtext」は「qtext CRLF qtext」と解釈しても良い。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal>-9 であってますかね? しかしこうだとすると、(欄の定義を見ずに) CRLF LWSP-char ⇒ LWSP-char という風に unfolding を実装することが出来なくなってしまいます...</li></ul><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>HTTP メッセージ</h1><p>RFC 1945 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/1.0</anchor> によると、</p><ol><li>quoted-string  = ( &lt;&quot;&gt; *(qdtext) &lt;&quot;&gt; )</li><li>qdtext         = &lt;any CHAR except &lt;&quot;&gt; and CTLs, but including LWS&gt;</li></ol><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> RFC 2068 (HTTP/1.1) によると:<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end>           quoted-string  = ( &lt;&quot;&gt; *(qdtext) &lt;&quot;&gt; )</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end>          qdtext         = &lt;any TEXT except &lt;&quot;&gt;&gt;</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end>          quoted-pair    = &quot;\&quot; CHAR</li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> RFC 2616 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/1.1</anchor> によると、</p><ol><li>quoted-string  = ( &lt;&quot;&gt; *(qdtext | quoted-pair ) &lt;&quot;&gt; )</li><li>qdtext         = &lt;any TEXT except &lt;&quot;&gt;&gt;</li><li>quoted-pair    = &quot;\&quot; CHAR</li></ol><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> HTTP/1.0 では quoted-pair が使えなかったと。それで HTTP/1.1
でも使えるけど使えないみたいな玉虫色。 See <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ頭のcomment</anchor> の HTTP
のとこ。
(さすがに RFC 733 の bug (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal>) を引きずってるのでは<em>ない</em>でしょう。)</p><ol><li>http1.0.quoted-string = &lt;&quot;&gt; http1.0.qcontent &lt;&quot;&gt;</li><li>http1.0.qcontent = *http1.0.qtext</li><li>http1.0.qtext = %x20-21 / %x23-%x7E / FWS</li></ol><ol><li>http1.1.quoted-string = &lt;&quot;&gt; http1.1.qcontent &lt;&quot;&gt;</li><li>http1.1.qcontent = *( http1.1.qtext / http.quoted-pair )</li><li>http1.1.qtext = %x00-21 / %x23-5B / %x5D-FF</li><li>http.quoted-string = &quot;\&quot; %x00-7F</li></ol><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> たぶん HTTP/1.1 でも qdtext に LWS が使えると解釈したほーがいいんだろうけど、
HTTP だと単独の CR が使えるから BNF がちょいとばかり複雑になるなあ。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> HTTP でも <code class="ABNF">CHAR = %x00-7F</code> ですから、 <code class="ABNF">quoted-pair</code>
で8ビットの値を使用することは出来ません。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> なお、8ビットの値は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/1.0</anchor> (RFC 1945) では「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO-8859-1</anchor> と解釈しても良」く、 HTTP/1.1 (RFC 2068/2616) では <code class="CHARSET">ISO-8859-1</code> です。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC2831</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SASL</anchor>) にも <code class="ABNF">quoted-string</code> の定義がありますが、 RFC 2616 からの引用で同じものです。</li></ul></p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> <cite xml:lang="en">RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</cite> (<time>2014-06-07 01:59:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7230#section-3.2.6">https://tools.ietf.org/html/rfc7230#section-3.2.6</anchor-external></li></ul></refs><pre class="ABNF code">     quoted-string  = DQUOTE *( qdtext / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-pair</anchor> ) DQUOTE
     qdtext         = <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTAB</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SP</anchor> /%x21 / %x23-5B / %x5D-7E / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">obs-text</anchor>
     <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">obs-text</anchor>       = %x80-FF
     <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-pair</anchor>    = &quot;\&quot; ( <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTAB</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SP</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VCHAR</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">obs-text</anchor> )</pre><figure class="railroad"><ol><li><code>&quot;</code></li><li>*<ol><li>|<ol><li><code>qdtext</code></li><li>=<ol><li><code>\</code></li><li>|<ol><li><code>&quot;</code></li><li><code>\</code></li></ol></li></ol></li></ol></li></ol></li><li><code>&quot;</code></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7616</anchor> は <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">unq()</code></anchor></dfn> 構文により、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引用文字列</anchor>から
<code>&quot;</code> を除去したもの <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;92</anchor-internal></src> を表しています。 <code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-pair</anchor></code>
の扱いは不明瞭です。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> <cite xml:lang="en">RFC 7616 - HTTP Digest Access Authentication</cite> (<time>2015-11-10 07:05:08 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7616#section-3.4.5">https://tools.ietf.org/html/rfc7616#section-3.4.5</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> <cite xml:lang="en">MIME Sniffing Standard</cite> (<time>2018-01-09 18:13:17 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point">https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point</anchor-external></li></ul></refs></section><section><h1>RTSP メッセージ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP/1.1</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC2068</anchor>) 派生プロトコルの1つ、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RTSP/1.0</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC2326</anchor>)
は次のように定義しています。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end>  quoted-string      =      ( &lt;&quot;&gt; *(qdtext) &lt;&quot;&gt; )</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end>  qdtext             =      &lt;any TEXT except &lt;&quot;&gt;&gt; <ins>;; %x20-21 / %x23-7E / %x80-FF</ins></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end>  quoted-pair        =      &quot;\&quot; CHAR <ins>;; &quot;\&quot; %x00-7F</ins></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> RTSP において8ビットの値は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> と解釈されます。
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;51</anchor-internal> にあるように8ビットの時は <code class="ABNF">quoted-pair</code>
が使えません。単に HTTP からのコピペで済ませたから使えないままなのか、 UTF-8
の2オクテット目以降を quote するのかの問題が生じるのが嫌だから敢えて使えないままにしたのかはわかりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;49</anchor-internal>-50 <code class="ABNF">quoted-pair</code> をどこに使うのかわからないのは HTTP
譲りでしょうか(藁)。</p></section><section><h1>SIP メッセージ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> HTTP を元にしてる SIP だけど、びみょーに違う。いやらしーのは
HTTP/1.1 と同じ。(たぶん何も考えずに写したんだ。)</p><ol><li>quoted-string  =  ( &lt;&quot;&gt; *(qdtext | quoted-pair ) &lt;&quot;&gt; )</li><li>qdtext         =  &lt;any TEXT-UTF8 except &lt;&quot;&gt;&gt;</li><li>quoted-pair  =  &quot; \ &quot; CHAR</li></ol><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <code class="ABNF">&quot; \ &quot;</code> はたぶん <code class="ABNF">&quot;\&quot;</code> の間違いだ。そー信じたい。</p><ol><li>sip.quoted-string = &lt;&quot;&gt; sip.quoted-string &lt;&quot;&gt;</li><li>sip.qcontent = *( sip.qtext / http.quoted-pair )</li><li>sip.qtext = %x20-21 / %x23-5B / %x5D-7E / utf8-xtra-char / FWS</li></ol></section><section><h1>CGI</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> <pre class="ABNF code">      quoted-string = &lt;&quot;&gt; *qdtext &lt;&quot;&gt;
      qdtext        = &lt;any CHAR except &lt;&quot;&gt; and CTLs but including LWSP&gt;</pre></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> これは実質的に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1945</anchor> の定義と一致しています。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> <cite xml:lang="en">RFC 3875 - The Common Gateway Interface (CGI) Version 1.1</cite> (<time>2011-11-20 06:09:05 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3875#page-7">http://tools.ietf.org/html/rfc3875#page-7</anchor-external></li></ul></refs></section></section><section><h1>RFC 2822 (電子メイル)</h1><section><h1>3.2.2. Quoted characters</h1><blockquote><p>Some characters are reserved for special interpretation, such as
delimiting lexical tokens.  To permit use of these characters as
uninterpreted data, a quoting mechanism is provided.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> 幾つかの文字は単語字句を区切るためなどの特別な解釈に予約されています。
こうした文字を解釈しないデータとして使うことを可能にするため、
quote 機構を提供します。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end>   quoted-pair     =       (&quot;\&quot; text) / obs-qp</li></ul><blockquote><p>Where any quoted-pair appears, it is to be interpreted as the text
character alone.  That is to say, the &quot;\&quot; character that appears as
part of a quoted-pair is semantically &quot;invisible&quot;.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <code class="ABNF">quoted-pair</code> が出現したら、これは <code class="ABNF">text</code>
文字だけであると解釈されます。言い換えれば、 <code class="ABNF">quoted-pair</code>
の一部として出現する <code class="ABNF">&quot;\&quot;</code> 文字は意味的には「不可視」です。</p><blockquote><p>Note: The &quot;\&quot; character may appear in a message where it is not part
of a quoted-pair.  A &quot;\&quot; character that does not appear in a
quoted-pair is not semantically invisible.  The only places in this
standard where quoted-pair currently appears are ccontent, qcontent,
dcontent, no-fold-quote, and no-fold-literal.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> 注意: <code class="ABNF">&quot;\&quot;</code> 文字はメッセージ中で <code class="ABNF">quoted-pair</code>
の一部でない場所で出現するかもしれません。 <code class="ABNF">quoted-pair</code>
中でない <code class="ABNF">&quot;\&quot;</code> は意味的に不可視ではありません。
この規格中で現在 <code class="ABNF">quoted-pair</code> が出現するのは
<code class="ABNF">ccontent</code>, <code class="ABNF">qcontent</code>, <code class="ABNF">dcontent</code>,
<code class="ABNF">no-fold-quote</code>, <code class="ABNF">no-fold-literal</code> だけです。</p></section><section><h1>3.2.5. Quoted strings</h1><blockquote><p>Strings of characters that include characters other than those
allowed in atoms may be represented in a quoted string format, where
the characters are surrounded by quote (DQUOTE, ASCII value 34) characters.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">atom</anchor> 中で認められている以外の文字を含む文字列は引用符で囲まれた文字列形式,
すなわち引用符 (<code class="ABNF">DQUOTE</code>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> 値 <code>34</code>)
文字で囲まれた文字を使って表現しても構いません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end><pre> qtext          =       NO-WS-CTL /     ; Non white space controls
                                        <ins>; 非空白間隔制御文字</ins>
                        %d33 /          ; The rest of the US-ASCII
                        %d35-91 /       ;  characters not including &quot;\&quot;
                        %d93-126        ;  or the quote character
                                        <ins>; &quot;\&quot; や引用符文字を除いた US-ASCII 文字</ins></pre></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> qcontent        =       qtext / quoted-pair</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> quoted-string   =       [CFWS] DQUOTE *([FWS] qcontent) [FWS] DQUOTE [CFWS]</li></ul><blockquote><p>A quoted-string is treated as a unit.  That is, quoted-string is
identical to atom, semantically.  Since a quoted-string is allowed to
contain FWS, folding is permitted.  Also note that since quoted-pair
is allowed in a quoted-string, the quote and backslash characters may
appear in a quoted-string so long as they appear as a quoted-pair.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <code class="ABNF">quoted-string</code> は1単位として扱います。
つまり、 <code class="ABNF">quoted-string</code> は意味的には <code class="ABNF">atom</code>
と同一です。 <code class="ABNF">quoted-string</code> は <code class="ABNF">FWS</code>
を含むことを認めていますから、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">折り畳み</anchor>が認められます。
<code class="ABNF">quoted-string</code> 中で <code class="ABNF">quoted-pair</code>
が認められているので、引用符文字及び逆斜線文字は
<code class="ABNF">quoted-pair</code> としてなら <code class="ABNF">quoted-string</code>
中に出現しても構わないことにも注意して下さい。</p><blockquote><p>Semantically, neither the optional CFWS outside of the quote
characters nor the quote characters themselves are part of the
quoted-string; the quoted-string is what is contained between the two
quote characters.  As stated earlier, the &quot;\&quot; in any quoted-pair and
the CRLF in any FWS/CFWS that appears within the quoted-string are
semantically &quot;invisible&quot; and therefore not part of the quoted-string either.</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> 意味的には、引用符文字の外側の省略可能な <code class="ABNF">CFWS</code>
も引用符文字自体も <code class="ABNF">quoted-string</code> の一部ではありません。
<code class="ABNF">quoted-string</code> は2つの引用符文字の間に含まれるものです。
上述の通り、 <code class="ABNF">quoted-string</code> 中に出現する
<code class="ABNF">quoted-pair</code> 中の <code class="ABNF">&quot;\&quot;</code> 及び
<code class="ABNF">FWS</code>/<code class="ABNF">CFWS</code> 中の <code class="ABNF">CRLF</code>
は意味的には「不可視」であって従ってこれもまた <code class="ABNF">quoted-string</code>
の一部ではありません。 </p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end><pre> text           =       %d1-9 /         ; Characters excluding CR and LF
                        %d11 /          <ins>; CR, LF を除く文字</ins>
                        %d12 /          <ins>;; RFC 2822 3.2.1</ins>
                        %d14-127 /
                        obs-text
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end>
 obs-char       =       %d0-9 / %d11 /          ; %d0-127 except CR and
                        %d12 / %d14-127         ;  LF
-[43] obs-text        =       *LF *CR *(obs-char *LF *CR) ;; RFC 2822 4.1
-[44] obs-qp          =       &quot;\&quot; (%d0-127) ;; RFC 2822 4.1
-[40] no-fold-quote   =       DQUOTE *(qtext / quoted-pair) DQUOTE ;; RFC 2822 3.6.4 (Message-ID)</pre></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;38</anchor-internal> にあるように、 <code class="ABNF">quoted-pair</code>
が使える場所は <code class="ABNF">quoted-string</code>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">comment</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domain-literal</anchor> です。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</anchor-internal> は新構文の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message-ID</anchor> で使います。 Message-ID
中での折り畳みは非推奨ということで、その他は <code class="ABNF">quoted-string</code>
と同じです。
<form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></li></ul></section></section><section><h1>USEFOR (電子ニュース)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">usefor-article</anchor> (08) は次のような構文を定義しています。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end>      quoted-string = [CFWS] DQUOTE *( [FWS] qcontent ) [FWS] DQUOTE [CFWS]</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end>      quoted-pair   = &quot;\&quot; text</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end>      qcontent      = qtext / quoted-pair
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end><pre>      text            = %d1-9 /            ; all UTF-8 characters except
                        %d11-12 /          ; US-ASCII NUL, CR and LF
                        %d14-127 /
                        UTF8-xtra-char</pre></li></ul></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> strict-quoted-string = [CFWS] DQUOTE *( [FWS] strict-qcontent ) [FWS] DQUOTE [CFWS]</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> strict-quoted-pair = &quot;\&quot; strict-text</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> strict-qcontent = strict-qtext / strict-quoted-pair</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end><pre>      strict-qtext    = NO-WS-CTL /        ; qtext restricted to
                        %d33 /             ; US-ASCII
                        %d35-91 /
                        %d93-126
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end>
      no-fold-quote      = DQUOTE
                              *( strict-qtext / &quot;\\&quot; / &quot;\&quot; DQUOTE )
                              qspecial
                              *( strict-qtext / &quot;\\&quot; / &quot;\&quot; DQUOTE )
                              DQUOTE
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end>
      qspecial           = &quot;(&quot; / &quot;)&quot; /        ; same as specials except
                           &quot;&lt;&quot; / &quot;&gt;&quot; /        ; &quot;\&quot; and DQUOTE quoted
                           &quot;[&quot; / &quot;]&quot; /
                           &quot;:&quot; / &quot;;&quot; /
                           &quot;@&quot; / &quot;\\&quot; /
                           &quot;,&quot; / &quot;.&quot; /
                           &quot;\&quot; DQUOTE</pre></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> RFC 2822 の定義 (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal>) から非推奨構文を除き <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> の文字を加えたものが 
<code class="ABNF">quoted-string</code> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;64</anchor-internal>) 及び <code class="ABNF">quoted-pair</code> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal>)
です。また、電子メイル・アドレスの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">local-part</anchor> などで使われる
<code class="ABNF">strict-quoted-string</code> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;67</anchor-internal>) は、 RFC 2822 の <code class="ABNF">quoted-string</code>
(<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;31</anchor-internal>) から非推奨構文を除いたものです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message-ID</anchor> で使う RFC 2822 の <code class="ABNF">no-fold-quote</code> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</anchor-internal>)
も更に厳格化されています。これはニュースに於いてメイル以上に重要な意味を持つ
Message-ID の比較などを簡単に行えるようにするためです。
Usefor の <code class="ABNF">no-fold-quote</code> は、 RFC 2822 同様に UTF-8
の文字が使えない上に、 <code class="ABNF">quoted-pair</code> が使えるのは
<code class="ABNF">&quot;\\&quot;</code> 及び <code class="ABNF">&lt;\&quot;&gt;</code> の2種類のみです。
又、 <code class="ABNF">specials</code> に該当する文字が含まれていない場合は使うことが出来ません。
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> (これでもまだ <code class="ABNF">dot-atom-text</code> が quote あり/なし2種類で表せるなあ。)
<form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></p></section></section><section><h1>encoded-word と quoted-string</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">encoded-word</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC2047</anchor> (やその以前の RFC)
によれば <code class="ABNF">quoted-string</code> の内側 (<code class="ABNF">qcontent</code>)
で使うことは出来ません。ですから、 <samp>&quot;=?us-ascii?q?foo?=&quot;</samp>
は <code class="ABNF">encoded-word</code> を含む <code class="ABNF">quoted-string</code>
のように見えますが、単なる <samp>=?us-ascii?q?foo?=</samp>
という文字列であって、 <samp>foo</samp> の <code class="ABNF">encoded-word</code>
では<strong>ありません</strong>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;75</anchor-internal> なのですが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">M$OE</anchor> 
のようなふざけた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>が長く間違った利用を続けていたこともあって、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バグ互換性</anchor>のためにこの方法を使う
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UA</anchor> は多いです。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> では <code class="ABNF">quoted-string</code> 中で <code class="ABNF">encoded-word</code> が使えます。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">encoded-word</anchor> を参照。</li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5255</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IMAP</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">国際化</anchor>に関する仕様ですが、
関係する情報源としていくつかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>を挙げています。
その中で、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ファイル名</anchor>のための<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">二重引用符</anchor>の内側
(<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Disposition</anchor>:</code> 欄の <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">filename</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>のことと見られます。) で非標準ながら <code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">encoded-word</anchor></code>
が使われていることに言及されています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">だからどうしろとは特に述べていません。</comment-p><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5255</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案標準</anchor>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="urn:ietf:rfc:5255">urn:ietf:rfc:5255</anchor-external><ul><li><csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:" xml:lang="en">9.  Relevant Sources of Documents for Internationalized IMAP Implementations</csection></li></ul></li></ul><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>パラメーター値である quoted-string</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Type:欄</anchor>などで導入した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prameter</anchor>
では、値の部分 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ABNF</anchor> でいう <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">value</anchor>)
を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">token</anchor> 又は <code class="ABNF">quoted-string</code> としています。
つまり、特殊文字が値に使われる場合には <code class="ABNF">quoted-string</code>
が使われ (るか、後に導入された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC2231</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIMEのparameter値拡張</anchor>が使われ) ます。
この方法は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> の一部の欄や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">usefor-article</anchor>
などの MIME に倣った幾つかの仕様でも採用されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> RFC 2231 による拡張の導入は MIME 本体より遅れ、未だにその存在を知らない人もいるくらいで、
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;75</anchor-internal> のような <code class="ABNF">encoded-word</code> を使った例や、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">シフトJIS</anchor>
などを (規格に反して) 直書きする実装が多く存在しています。
特に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Disposition:欄</anchor>の <code>filename</code> パラメーターで問題となっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal> また、 RFC 2231 の方法の標準化以前に制定された規格ではこの方法を規定してしまったものもあります。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIMEのparameter値拡張</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">multipart/form-data</anchor></code> の項の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の値としての
<code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-string</anchor></code> に関する説明も参照してください。</p></section><section><h1>言語</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体説明</anchor>の <code>description<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">変種記述//description</title></code>
では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引用文字列</anchor>の直後に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語タグ</anchor>を書けるとしています。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 7232</anchor> では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2616</anchor> まで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引用文字列</anchor>だった<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体タグ</anchor>を独自構文に変更しています。</p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5335</anchor> により、 <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/global</anchor></code>
においては <code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">quoted-string</anchor></code> 中で
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> の使用が認められるようになりました (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5335</anchor> 4.3)。</p><p>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end>
(正確には <code class="ABNF" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">utf8-quoted-string</anchor></code>)
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</anchor-end> <cite xml:lang="en">Feedback from @reschke.</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">@reschke</anchor>著, <time>2017-06-29 20:47:29 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webappsec-clear-site-data/commit/9f20dcc7580e241636c4787b6cf852a7e6258d63">https://github.com/w3c/webappsec-clear-site-data/commit/9f20dcc7580e241636c4787b6cf852a7e6258d63</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> <cite xml:lang="en">Define the Content-Type header parser</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2018-11-27 18:47:01 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/fetch/commit/0b2bc05b2550dcbefe1321ea3e8026702514a798">https://github.com/whatwg/fetch/commit/0b2bc05b2550dcbefe1321ea3e8026702514a798</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> <cite xml:lang="en">Use collect an HTTP quoted string from Fetch</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2018-11-28 18:42:02 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/mimesniff/commit/8e9a7dd90717c595a4e4d982cd216e4411d33736">https://github.com/whatwg/mimesniff/commit/8e9a7dd90717c595a4e4d982cd216e4411d33736</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> <cite xml:lang="en">Use collect an HTTP quoted string by annevk · Pull Request #92 · whatwg/mimesniff</cite>
(<time>2019-06-21 11:18:13 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/mimesniff/pull/92">https://github.com/whatwg/mimesniff/pull/92</anchor-external></p></section></body></html>