Re: [art] AD review of draft-ietf-appsawg-file-scheme-13.txt

John C Klensin <john-ietf@jck.com> Wed, 23 November 2016 03:36 UTC

Return-Path: <john-ietf@jck.com>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8C32912943A for <art@ietfa.amsl.com>; Tue, 22 Nov 2016 19:36:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.397
X-Spam-Level:
X-Spam-Status: No, score=-3.397 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-1.497] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tW9p9enAy1-Q for <art@ietfa.amsl.com>; Tue, 22 Nov 2016 19:36:11 -0800 (PST)
Received: from bsa2.jck.com (bsa2.jck.com [70.88.254.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7423D1293F0 for <art@ietf.org>; Tue, 22 Nov 2016 19:36:10 -0800 (PST)
Received: from [198.252.137.10] (helo=JcK-HP8200) by bsa2.jck.com with esmtp (Exim 4.82 (FreeBSD)) (envelope-from <john-ietf@jck.com>) id 1c9OLo-000Kzc-Ix; Tue, 22 Nov 2016 22:36:00 -0500
Date: Tue, 22 Nov 2016 22:35:55 -0500
From: John C Klensin <john-ietf@jck.com>
To: Matthew Kerwin <matthew@kerwin.net.au>, Dave Crocker <dcrocker@bbiw.net>
Message-ID: <A73EDC49113FF6B5F5D4B897@JcK-HP8200>
In-Reply-To: <CACweHNDdDi_8vd7gG=eZTwBbJ0Lkn+O=j4XdqRDh88-=EQXssA@mail.gmail.com>
References: <2ed4e7c7-6876-6bd1-8ff8-abbd94139336@isode.com> <CACweHNCu+-mN1+Ry15Xdakt+DFS2Bzx5gQ1mAa5_DMiuDzhiwg@mail.gmail.com> <dc452593-3e84-04b0-a5b5-53f07453ff98@dcrocker.net> <CACweHNDdDi_8vd7gG=eZTwBbJ0Lkn+O=j4XdqRDh88-=EQXssA@mail.gmail.com>
X-Mailer: Mulberry/4.0.8 (Win32)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
X-SA-Exim-Connect-IP: 198.252.137.10
X-SA-Exim-Mail-From: john-ietf@jck.com
X-SA-Exim-Scanned: No (on bsa2.jck.com); SAEximRunCond expanded to false
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/DTLnhm9Fk3m7FOK2SXVftvOzaSU>
Cc: Alexey Melnikov <alexey.melnikov@isode.com>, "General Area Review Team (gen-art@ietf.org)" <art@ietf.org>
Subject: Re: [art] AD review of draft-ietf-appsawg-file-scheme-13.txt
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Nov 2016 03:36:13 -0000


--On Wednesday, November 23, 2016 11:47 +1000 Matthew Kerwin
<matthew@kerwin.net.au> wrote:

> ​Oh, yeah, I think I overlooked UTF-16 and EBCDIC, which
> contain characters that are allowed by the syntax but don't
> encode to US-ASCII-compatible octets. 

You are confusing "encoding" with "coded character set".  The
_characters_ available in Unicode encoded in UTF-16 are, by
definition, exactly the same as the _characters_ available in
Unicode encoded in UTF-8.  EBCDIC is another matter.  The
character repertoire and code point assignments depend on
selection of code pages; some have exact and unambiguous
mappings to Unicode but I wouldn't count on that being true for
all of them.

I also don't know what a "US-ASCII-compatible octet" is.  Unless
one turns that high bit on, bits are bits.

> How about this?:
 
> "
> When a file URI is produced, characters SHOULD be encoded
> using UTF-8, and any characters not allowed by the syntax in
> Section 2 MUST be percent-encoded.
> "
 
> I think that recaptures the original intent better as well,
> now I look at it.

See my previous note.   First of all, percent-encoding really
encodes octets, not characters.  That may have been a mistake
(see RFC 5137) but it is far too late to consider changing that
now.  Outside the ASCII range (and _only_ outside the ASCII
range), the thing that makes [Unicode in] UTF-8 important is
that percent-encoding of, e.g., "Ω" (U+03A9) yields "%CE%A9"
and not, e.g., %0e%A9 which is what one would get if one encoded
the UTF-16 octets instead.   Again, RFC 3986 (and hence Section
2) disallow "/" (U+002F) but it is a (by definition
single-octet) ASCII character and its percent-encoding is %2F
for reasons that have everything to do with the original
definition of percent-encoding and just about nothing to do with
the ASCII<->UTF-8 relationship.

There actually is a protocol issue here and, if you are going to
say "SHOULD" rather than "MUST", perhaps we should make you
address it.   If I have a file system whose file names and paths
are natively expressed in Unicode encoded in UTF-16, then it
actually is a big deal whether you expect that, at least outside
the ASCII repertoire and maybe including it) to be transcoded to
UTF-8 and then percent-encoded or whether, since 3986 doesn't
make specific allowances for other character sets or encodings,
you want to treat _all_ file names and paths expressed in the
native form of that file system as "not allowed by the syntax"
end percent-encode the native octets.   If you want to allow the
latter, you need to explain it.  If you intend the former, then
non-ASCII character MUST be in (or converted to) Unicode and
encoded in UTF-8 because anything else will result in ambiguity
and nasty interoperability problems.

    john